all repos — searchix @ 37deedc9b1da92571548c920721984d545269eb4

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

refactor: move Source/Repository types to config package

Alan Pearce
commit

37deedc9b1da92571548c920721984d545269eb4

parent

f700a3284ecc88bb2af1df5f0c8d242290a549cc

M internal/config/config.gointernal/config/config.go
@@ -6,7 +6,6 @@ "log/slog"
"maps" "net/url" "os" - "searchix/internal/importer" "time" "github.com/pelletier/go-toml/v2"
@@ -32,7 +31,7 @@ DataPath string `toml:"data-path"`
CSP CSP `toml:"content-security-policy"` ExtraBodyHTML template.HTML `toml:"extra-body-html"` Headers map[string]string - Sources map[string]*importer.Source + Sources map[string]*Source } var defaultConfig = Config{
@@ -43,12 +42,12 @@ },
Headers: map[string]string{ "x-content-type-options": "nosniff", }, - Sources: map[string]*importer.Source{ + Sources: map[string]*Source{ "nixos": { Name: "NixOS", Key: "nixos", Enable: true, - Type: importer.Channel, + Type: Channel, Channel: "nixpkgs", URL: "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz", ImportPath: "nixos/release.nix",
@@ -56,7 +55,7 @@ Attribute: "options",
OutputPath: "share/doc/nixos/options.json", FetchTimeout: 5 * time.Minute, ImportTimeout: 15 * time.Minute, - Repo: importer.Repository{ + Repo: Repository{ Type: "github", Owner: "NixOS", Repo: "nixpkgs",
@@ -66,7 +65,7 @@ "darwin": {
Name: "Darwin", Key: "darwin", Enable: false, - Type: importer.Channel, + Type: Channel, Channel: "darwin", URL: "https://github.com/LnL7/nix-darwin/archive/master.tar.gz", ImportPath: "release.nix",
@@ -74,7 +73,7 @@ Attribute: "options",
OutputPath: "share/doc/darwin/options.json", FetchTimeout: 5 * time.Minute, ImportTimeout: 15 * time.Minute, - Repo: importer.Repository{ + Repo: Repository{ Type: "github", Owner: "LnL7", Repo: "nix-darwin",
@@ -86,13 +85,13 @@ Key: "home-manager",
Enable: false, Channel: "home-manager", URL: "https://github.com/nix-community/home-manager/archive/master.tar.gz", - Type: importer.Channel, + Type: Channel, ImportPath: "default.nix", Attribute: "docs.json", OutputPath: "share/doc/home-manager/options.json", FetchTimeout: 5 * time.Minute, ImportTimeout: 15 * time.Minute, - Repo: importer.Repository{ + Repo: Repository{ Type: "github", Owner: "nix-community", Repo: "home-manager",
@@ -123,7 +122,7 @@ return nil, errors.Wrap(err, "config error")
} } - maps.DeleteFunc(config.Sources, func(_ string, v *importer.Source) bool { + maps.DeleteFunc(config.Sources, func(_ string, v *Source) bool { return !v.Enable })
M internal/importer/channel.gointernal/importer/channel.go
@@ -7,6 +7,7 @@ "log/slog"
"os" "os/exec" "path" + "searchix/internal/config" "searchix/internal/file" "searchix/internal/search" "strconv"
@@ -17,7 +18,7 @@ )
type ChannelImporter struct { DataPath string - Source *Source + Source *config.Source SourceFile string Logger *slog.Logger }
M internal/importer/importer.gointernal/importer/importer.go
@@ -4,6 +4,7 @@ import (
"context" "log/slog" "path" + "searchix/internal/config" "searchix/internal/search" "sync" )
@@ -14,7 +15,7 @@ Import(context.Context, *search.WriteIndex) (bool, error)
} func NewNixpkgsChannelImporter( - source *Source, + source *config.Source, dataPath string, logger *slog.Logger, ) *NixpkgsChannelImporter {
@@ -27,7 +28,11 @@ Logger: logger,
} } -func NewChannelImporter(source *Source, dataPath string, logger *slog.Logger) *ChannelImporter { +func NewChannelImporter( + source *config.Source, + dataPath string, + logger *slog.Logger, +) *ChannelImporter { fullpath := path.Join(dataPath, source.Channel) return &ChannelImporter{
@@ -39,7 +44,7 @@ }
type importConfig struct { Filename string - Source *Source + Source *config.Source Logger *slog.Logger }
M internal/importer/ingest.gointernal/importer/ingest.go
@@ -7,6 +7,7 @@ "log/slog"
"net/url" "os" "reflect" + "searchix/internal/config" "searchix/internal/options" "github.com/bcicen/jstream"
@@ -108,14 +109,14 @@ dec *jstream.Decoder
ms *mapstructure.Decoder optJSON nixOptionJSON infile *os.File - source *Source + source *config.Source } type Ingester[T options.NixOption] interface { Process() (<-chan *T, <-chan error) } -func NewOptionProcessor(inpath string, source *Source) (*OptionIngester, error) { +func NewOptionProcessor(inpath string, source *config.Source) (*OptionIngester, error) { infile, err := os.Open(inpath) if err != nil { return nil, errors.WithMessagef(err, "failed to open input file %s", inpath)
M internal/importer/nixpkgs-channel.gointernal/importer/nixpkgs-channel.go
@@ -7,6 +7,7 @@ "log/slog"
"net/url" "os" "path" + "searchix/internal/config" "searchix/internal/file" "searchix/internal/search"
@@ -15,7 +16,7 @@ )
type NixpkgsChannelImporter struct { DataPath string - Source *Source + Source *config.Source Logger *slog.Logger }
M internal/importer/repository.gointernal/config/repository.go
@@ -1,4 +1,4 @@
-package importer +package config import ( "fmt"
M internal/importer/source-type.gointernal/config/source.go
@@ -1,4 +1,4 @@
-package importer +package config import ( "fmt"