all repos — searchix @ a5e758d41c151c17ed03b39454470ba8dd0c3b99

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

refactor: separate fetch and import logic

Alan Pearce
commit

a5e758d41c151c17ed03b39454470ba8dd0c3b99

parent

d558039919b6198a246a6a3fd007276191cb4b2f

1 file changed, 2 insertions(+), 46 deletions(-)

changed files
M internal/config/source.gointernal/config/source.go
@@ -1,59 +1,15 @@
package config import ( - "fmt" "time" - - "github.com/stoewer/go-strcase" -) - -type Type int - -const ( - Unknown = iota - Channel - ChannelNixpkgs - DownloadOptions ) -func (f Type) String() string { - switch f { - case Channel: - return "channel" - case ChannelNixpkgs: - return "channel-nixpkgs" - case DownloadOptions: - return "download-options" - } - - return fmt.Sprintf("Fetcher(%d)", f) -} - -func parseType(name string) (Type, error) { - switch strcase.KebabCase(name) { - case "channel": - return Channel, nil - case "channel-nixpkgs": - return ChannelNixpkgs, nil - case "download-options": - return DownloadOptions, nil - default: - return Unknown, fmt.Errorf("unsupported fetcher %s", name) - } -} - -func (f *Type) UnmarshalText(text []byte) error { - var err error - *f, err = parseType(string(text)) - - return err -} - type Source struct { Name string Key string Enable bool - Type Type + Fetcher Fetcher + Importer ImporterType Channel string URL string Attribute string