From b02076363f979daa6ac313058eb140d1d67ce184 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Thu, 30 May 2024 10:24:02 +0200 Subject: refactor: extract default config to own file --- internal/config/default.go | 105 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 internal/config/default.go (limited to 'internal/config/default.go') diff --git a/internal/config/default.go b/internal/config/default.go new file mode 100644 index 0000000..370057e --- /dev/null +++ b/internal/config/default.go @@ -0,0 +1,105 @@ +package config + +import ( + "time" + + "github.com/pelletier/go-toml/v2" +) + +var nixpkgs = Repository{ + Type: GitHub, + Owner: "NixOS", + Repo: "nixpkgs", +} + +var defaultConfig = Config{ + DataPath: "./data", + Web: &Web{ + ListenAddress: "localhost", + Port: 3000, + BaseURL: mustURL("http://localhost:3000"), + Environment: "development", + ContentSecurityPolicy: CSP{ + DefaultSrc: []string{"'self'"}, + }, + Headers: map[string]string{ + "x-content-type-options": "nosniff", + }, + }, + Importer: &Importer{ + Timeout: Duration{30 * time.Minute}, + UpdateAt: mustLocalTime("04:00:00"), + Sources: map[string]*Source{ + "nixos": { + Name: "NixOS", + Key: "nixos", + Enable: true, + Importer: Options, + Fetcher: Channel, + Channel: "nixpkgs", + URL: "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz", + ImportPath: "nixos/release.nix", + Attribute: "options", + OutputPath: "share/doc/nixos", + Timeout: Duration{5 * time.Minute}, + Repo: nixpkgs, + }, + "darwin": { + Name: "Darwin", + Key: "darwin", + Enable: false, + Importer: Options, + Fetcher: Channel, + Channel: "darwin", + URL: "https://github.com/LnL7/nix-darwin/archive/master.tar.gz", + ImportPath: "release.nix", + Attribute: "options", + OutputPath: "share/doc/darwin", + Timeout: Duration{5 * time.Minute}, + Repo: Repository{ + Type: GitHub, + Owner: "LnL7", + Repo: "nix-darwin", + }, + }, + "home-manager": { + Name: "Home Manager", + Key: "home-manager", + Enable: false, + Importer: Options, + Channel: "home-manager", + URL: "https://github.com/nix-community/home-manager/archive/master.tar.gz", + Fetcher: Channel, + ImportPath: "default.nix", + Attribute: "docs.json", + OutputPath: "share/doc/home-manager", + Timeout: Duration{5 * time.Minute}, + Repo: Repository{ + Type: GitHub, + Owner: "nix-community", + Repo: "home-manager", + }, + }, + "nixpkgs": { + Name: "Nix Packages", + Key: "nixpkgs", + Enable: true, + Importer: Packages, + Fetcher: ChannelNixpkgs, + Channel: "nixos-unstable", + OutputPath: "packages.json.br", + Timeout: Duration{5 * time.Minute}, + Repo: nixpkgs, + }, + }, + }, +} + +func GetDefaultConfig() string { + out, err := toml.Marshal(&defaultConfig) + if err != nil { + panic("could not read default configuration") + } + + return string(out) +} -- cgit 1.4.1