+117
-124
flake.nix
+117
-124
flake.nix
···
21
21
};
22
22
};
23
23
24
-
outputs =
25
-
{ self
26
-
, nixpkgs
27
-
, indigo
28
-
, htmx-src
29
-
, lucide-src
30
-
, gitignore
31
-
,
32
-
}:
33
-
let
34
-
supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
35
-
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
36
-
nixpkgsFor = forAllSystems (system:
37
-
import nixpkgs {
38
-
inherit system;
39
-
overlays = [ self.overlays.default ];
40
-
});
41
-
inherit (gitignore.lib) gitignoreSource;
42
-
in
43
-
{
44
-
overlays.default = final: prev: {
45
-
indigo-lexgen = with final;
46
-
final.buildGoModule {
47
-
pname = "indigo-lexgen";
48
-
version = "0.1.0";
49
-
src = indigo;
50
-
subPackages = [ "cmd/lexgen" ];
51
-
vendorHash = "sha256-pGc29fgJFq8LP7n/pY1cv6ExZl88PAeFqIbFEhB3xXs=";
52
-
doCheck = false;
53
-
};
24
+
outputs = {
25
+
self,
26
+
nixpkgs,
27
+
indigo,
28
+
htmx-src,
29
+
lucide-src,
30
+
gitignore,
31
+
}: let
32
+
supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
33
+
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
34
+
nixpkgsFor = forAllSystems (system:
35
+
import nixpkgs {
36
+
inherit system;
37
+
overlays = [self.overlays.default];
38
+
});
39
+
inherit (gitignore.lib) gitignoreSource;
40
+
in {
41
+
overlays.default = final: prev: {
42
+
indigo-lexgen = with final;
43
+
final.buildGoModule {
44
+
pname = "indigo-lexgen";
45
+
version = "0.1.0";
46
+
src = indigo;
47
+
subPackages = ["cmd/lexgen"];
48
+
vendorHash = "sha256-pGc29fgJFq8LP7n/pY1cv6ExZl88PAeFqIbFEhB3xXs=";
49
+
doCheck = false;
50
+
};
54
51
55
-
appview = with final;
56
-
final.pkgsStatic.buildGoModule {
57
-
pname = "appview";
58
-
version = "0.1.0";
59
-
src = gitignoreSource ./.;
60
-
postUnpack = ''
61
-
pushd source
62
-
cp -f ${htmx-src} appview/pages/static/htmx.min.js
63
-
cp -f ${lucide-src} appview/pages/static/lucide.min.js
64
-
${pkgs.tailwindcss}/bin/tailwindcss -i input.css -o appview/pages/static/tw.css
65
-
popd
66
-
'';
67
-
doCheck = false;
68
-
subPackages = [ "cmd/appview" ];
69
-
vendorHash = "sha256-u9LwvapAwyVOIOAag0IRrk+ot6B0PaqyEnt0EeJciGQ=";
70
-
env.CGO_ENABLED = 1;
71
-
stdenv = pkgsStatic.stdenv;
72
-
};
73
-
knotserver = with final;
74
-
final.pkgsStatic.buildGoModule {
75
-
pname = "knotserver";
76
-
version = "0.1.0";
77
-
src = gitignoreSource ./.;
78
-
subPackages = [ "cmd/knotserver" ];
79
-
vendorHash = "sha256-t7lWrCyFWCI7zjUcC6XNWzCrUPSCFnFu9gTmRTsYrz0=";
80
-
env.CGO_ENABLED = 1;
81
-
};
82
-
repoguard = with final;
83
-
final.pkgsStatic.buildGoModule {
84
-
pname = "repoguard";
85
-
version = "0.1.0";
86
-
src = gitignoreSource ./.;
87
-
subPackages = [ "cmd/repoguard" ];
88
-
vendorHash = "sha256-t7lWrCyFWCI7zjUcC6XNWzCrUPSCFnFu9gTmRTsYrz0=";
89
-
env.CGO_ENABLED = 0;
90
-
};
91
-
keyfetch = with final;
92
-
final.pkgsStatic.buildGoModule {
93
-
pname = "keyfetch";
94
-
version = "0.1.0";
95
-
src = gitignoreSource ./.;
96
-
subPackages = [ "cmd/keyfetch" ];
97
-
vendorHash = "sha256-t7lWrCyFWCI7zjUcC6XNWzCrUPSCFnFu9gTmRTsYrz0=";
98
-
env.CGO_ENABLED = 0;
99
-
};
52
+
appview = with final;
53
+
final.pkgsStatic.buildGoModule {
54
+
pname = "appview";
55
+
version = "0.1.0";
56
+
src = gitignoreSource ./.;
57
+
postUnpack = ''
58
+
pushd source
59
+
cp -f ${htmx-src} appview/pages/static/htmx.min.js
60
+
cp -f ${lucide-src} appview/pages/static/lucide.min.js
61
+
${pkgs.tailwindcss}/bin/tailwindcss -i input.css -o appview/pages/static/tw.css
62
+
popd
63
+
'';
64
+
doCheck = false;
65
+
subPackages = ["cmd/appview"];
66
+
vendorHash = "sha256-u9LwvapAwyVOIOAag0IRrk+ot6B0PaqyEnt0EeJciGQ=";
67
+
env.CGO_ENABLED = 1;
68
+
stdenv = pkgsStatic.stdenv;
69
+
};
70
+
knotserver = with final;
71
+
final.pkgsStatic.buildGoModule {
72
+
pname = "knotserver";
73
+
version = "0.1.0";
74
+
src = gitignoreSource ./.;
75
+
subPackages = ["cmd/knotserver"];
76
+
vendorHash = "sha256-t7lWrCyFWCI7zjUcC6XNWzCrUPSCFnFu9gTmRTsYrz0=";
77
+
env.CGO_ENABLED = 1;
78
+
};
79
+
repoguard = with final;
80
+
final.pkgsStatic.buildGoModule {
81
+
pname = "repoguard";
82
+
version = "0.1.0";
83
+
src = gitignoreSource ./.;
84
+
subPackages = ["cmd/repoguard"];
85
+
vendorHash = "sha256-t7lWrCyFWCI7zjUcC6XNWzCrUPSCFnFu9gTmRTsYrz0=";
86
+
env.CGO_ENABLED = 0;
87
+
};
88
+
keyfetch = with final;
89
+
final.pkgsStatic.buildGoModule {
90
+
pname = "keyfetch";
91
+
version = "0.1.0";
92
+
src = gitignoreSource ./.;
93
+
subPackages = ["cmd/keyfetch"];
94
+
vendorHash = "sha256-t7lWrCyFWCI7zjUcC6XNWzCrUPSCFnFu9gTmRTsYrz0=";
95
+
env.CGO_ENABLED = 0;
96
+
};
97
+
};
98
+
packages = forAllSystems (system: {
99
+
inherit (nixpkgsFor."${system}") indigo-lexgen appview knotserver repoguard keyfetch;
100
+
});
101
+
defaultPackage = forAllSystems (system: nixpkgsFor.${system}.appview);
102
+
formatter = forAllSystems (system: nixpkgsFor."${system}".alejandra);
103
+
devShells = forAllSystems (system: let
104
+
pkgs = nixpkgsFor.${system};
105
+
staticShell = pkgs.mkShell.override {
106
+
stdenv = pkgs.pkgsStatic.stdenv;
107
+
};
108
+
in {
109
+
default = staticShell {
110
+
nativeBuildInputs = [
111
+
pkgs.go
112
+
pkgs.air
113
+
pkgs.gopls
114
+
pkgs.httpie
115
+
pkgs.indigo-lexgen
116
+
pkgs.litecli
117
+
pkgs.websocat
118
+
pkgs.tailwindcss
119
+
];
100
120
};
101
-
packages = forAllSystems (system: {
102
-
inherit (nixpkgsFor."${system}") indigo-lexgen appview knotserver repoguard keyfetch;
103
-
});
104
-
defaultPackage = forAllSystems (system: nixpkgsFor.${system}.appview);
105
-
formatter = forAllSystems (system: nixpkgsFor."${system}".alejandra);
106
-
devShells = forAllSystems (system:
107
-
let
108
-
pkgs = nixpkgsFor.${system};
109
-
staticShell = pkgs.mkShell.override {
110
-
stdenv = pkgs.pkgsStatic.stdenv;
111
-
};
112
-
in
113
-
{
114
-
default = staticShell {
115
-
nativeBuildInputs = [
116
-
pkgs.go
117
-
pkgs.air
118
-
pkgs.gopls
119
-
pkgs.httpie
120
-
pkgs.indigo-lexgen
121
-
pkgs.litecli
122
-
pkgs.websocat
123
-
pkgs.tailwindcss
124
-
];
125
-
};
126
-
});
127
-
apps = forAllSystems (system:
128
-
let
129
-
pkgs = nixpkgsFor."${system}";
130
-
air-watcher = name:
131
-
pkgs.writeShellScriptBin "run"
132
-
''
133
-
${pkgs.air}/bin/air -c /dev/null \
134
-
-build.cmd "${pkgs.tailwindcss}/bin/tailwindcss -i input.css -o ./appview/pages/static/tw.css && ${pkgs.go}/bin/go build -o ./out/${name}.out ./cmd/${name}/main.go" \
135
-
-build.bin "./out/${name}.out" \
136
-
-build.include_ext "go,html,css"
137
-
'';
138
-
in
139
-
{
140
-
watch-appview = {
141
-
type = "app";
142
-
program = ''${air-watcher "appview"}/bin/run'';
143
-
};
144
-
watch-knotserver = {
145
-
type = "app";
146
-
program = ''${air-watcher "knotserver"}/bin/run'';
147
-
};
148
-
});
149
-
};
121
+
});
122
+
apps = forAllSystems (system: let
123
+
pkgs = nixpkgsFor."${system}";
124
+
air-watcher = name:
125
+
pkgs.writeShellScriptBin "run"
126
+
''
127
+
${pkgs.air}/bin/air -c /dev/null \
128
+
-build.cmd "${pkgs.tailwindcss}/bin/tailwindcss -i input.css -o ./appview/pages/static/tw.css && ${pkgs.go}/bin/go build -o ./out/${name}.out ./cmd/${name}/main.go" \
129
+
-build.bin "./out/${name}.out" \
130
+
-build.include_ext "go,html,css"
131
+
'';
132
+
in {
133
+
watch-appview = {
134
+
type = "app";
135
+
program = ''${air-watcher "appview"}/bin/run'';
136
+
};
137
+
watch-knotserver = {
138
+
type = "app";
139
+
program = ''${air-watcher "knotserver"}/bin/run'';
140
+
};
141
+
});
142
+
};
150
143
}