all repos — searchix @ 756d8f1f343473e7e33b81eceb11e2bb608752b6

Search engine for NixOS, nix-darwin, home-manager and NUR users

fix: set default values for custom sources https://codeberg.org/alanpearce/searchix/issues/4

Alan Pearce
commit

756d8f1f343473e7e33b81eceb11e2bb608752b6

parent

e6602833994fab494ce0675a82339959d2fe47b8

1 file changed, 24 insertions(+), 16 deletions(-)

changed files
M internal/config/structs.gointernal/config/structs.go
@@ -5,7 +5,9 @@ // keep config structs here so that lll ignores the long lines (go doesn't support multi-line struct tags)
import ( "fmt" + "strings" + "github.com/creasty/defaults" "go.uber.org/zap/zapcore" )
@@ -37,22 +39,22 @@ UpdateAt LocalTime `comment:"Time of day (UTC) to run fetch/import process"`
} type Source struct { - Name string `comment:"Human-readable name of source for generating links"` - Order uint `comment:"Order in which to show source in web interface."` - Key string `comment:"Machine-readable name of source. Must be URL- and path-safe."` - Enable bool `comment:"Controls whether to show in the web interface and to run fetch/import jobs."` - Fetcher Fetcher `comment:"How to fetch options.json. One of 'channel', 'channel-nixpkgs' or 'download'."` - Importer ImporterType `comment:"Kind of data available from source. Currently supports 'packages' and 'options'."` - Channel string `comment:"(Fetcher=channel) Local name for channel, (Fetcher=channel-nixpkgs) Remote name of channel."` - URL string `comment:"(Fetcher=channel) Remote URL for channel, (Fetcher=download) Path containing files named 'revision' and 'options.json'."` - Attribute string `comment:"(Fetcher=channel) Nix attribute name (i.e. nix-build -A) that builds an {options,packages}.json"` - ImportPath string `comment:"(Fetcher=channel) Sub-path of imported channel which contains the attribute above, e.g. release.nix"` - Timeout Duration `comment:"Abort import if it takes longer than this."` - OutputPath string `comment:"(Fetcher=channel) Path under ./result symlink to folder containing {options,packages}.json."` - Repo Repository `comment:"Used to generate declaration/definition links"` - Programs ProgramsDB `comment:"Used to enable searching for programs in multi-program packages"` - Manpages Manpages `comment:"Used to enable searching for manpages"` - JSONDepth int `comment:"Depth at which packages/object object is to be found"` + Name string `default:"-" comment:"Human-readable name of source for generating links"` + Order uint ` comment:"Order in which to show source in web interface."` + Key string ` comment:"Machine-readable name of source. Must be URL- and path-safe."` + Enable bool ` comment:"Controls whether to show in the web interface and to run fetch/import jobs."` + Fetcher Fetcher ` comment:"How to fetch options.json. One of 'channel', 'channel-nixpkgs' or 'download'."` + Importer ImporterType `default:"options" comment:"Kind of data available from source. Currently supports 'packages' and 'options'."` + Channel string ` comment:"(Fetcher=channel) Local name for channel, (Fetcher=channel-nixpkgs) Remote name of channel."` + URL string ` comment:"(Fetcher=channel) Remote URL for channel, (Fetcher=download) Path containing files named 'revision' and 'options.json'."` + Attribute string `default:"options" comment:"(Fetcher=channel) Nix attribute name (i.e. nix-build -A) that builds an {options,packages}.json"` + ImportPath string ` comment:"(Fetcher=channel) Sub-path of imported channel which contains the attribute above, e.g. release.nix"` + Timeout Duration `default:"5m" comment:"Abort import if it takes longer than this."` + OutputPath string `default:"share/doc/nixos" comment:"(Fetcher=channel) Path under ./result symlink to folder containing {options,packages}.json."` + Repo Repository ` comment:"Used to generate declaration/definition links"` + Programs ProgramsDB ` comment:"Used to enable searching for programs in multi-program packages"` + Manpages Manpages ` comment:"Used to enable searching for manpages"` + JSONDepth int `default:"1" comment:"Depth at which packages/object object is to be found"` } type ProgramsDB struct {
@@ -75,3 +77,9 @@ default:
return fmt.Sprintf("Source(%s)", source.Name) } } + +func (source *Source) SetDefaults() { + if defaults.CanUpdate(source.Name) { + source.Name = strings.ToTitle(source.Key[0:1]) + source.Key[1:] + } +}