1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
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)
}
|