+41
-50
flake.nix
+41
-50
flake.nix
···
53
53
}: let
54
54
supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
55
55
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
56
-
nixpkgsFor = forAllSystems (system:
57
-
import nixpkgs {
58
-
inherit system;
59
-
overlays = [self.overlays.default];
60
-
});
56
+
nixpkgsFor = forAllSystems (system: nixpkgs.legacyPackages.${system});
61
57
inherit (gitignore.lib) gitignoreSource;
62
-
in {
63
-
overlays.default = final: prev: let
58
+
mkPackageSet = pkgs: let
64
59
goModHash = "sha256-SLi+nALwCd/Lzn3aljwPqCo2UaM9hl/4OAjcHQLt2Bk=";
65
-
appviewDeps = {
66
-
inherit htmx-src htmx-ws-src lucide-src inter-fonts-src ibm-plex-mono-src goModHash gitignoreSource;
60
+
sqlite-lib = pkgs.callPackage ./nix/pkgs/sqlite-lib.nix {
61
+
inherit (pkgs) gcc;
62
+
inherit sqlite-lib-src;
67
63
};
68
-
knotDeps = {
69
-
inherit goModHash gitignoreSource;
70
-
};
71
-
spindleDeps = {
72
-
inherit goModHash gitignoreSource;
73
-
};
74
-
mkPackageSet = pkgs: {
75
-
lexgen = pkgs.callPackage ./nix/pkgs/lexgen.nix {inherit indigo;};
76
-
appview = pkgs.callPackage ./nix/pkgs/appview.nix appviewDeps;
77
-
knot = pkgs.callPackage ./nix/pkgs/knot.nix {};
78
-
spindle = pkgs.callPackage ./nix/pkgs/spindle.nix spindleDeps;
79
-
knot-unwrapped = pkgs.callPackage ./nix/pkgs/knot-unwrapped.nix knotDeps;
80
-
sqlite-lib = pkgs.callPackage ./nix/pkgs/sqlite-lib.nix {
81
-
inherit (pkgs) gcc;
82
-
inherit sqlite-lib-src;
83
-
};
84
-
genjwks = pkgs.callPackage ./nix/pkgs/genjwks.nix {inherit goModHash gitignoreSource;};
64
+
genjwks = pkgs.callPackage ./nix/pkgs/genjwks.nix {inherit goModHash gitignoreSource;};
65
+
lexgen = pkgs.callPackage ./nix/pkgs/lexgen.nix {inherit indigo;};
66
+
appview = pkgs.callPackage ./nix/pkgs/appview.nix {
67
+
inherit sqlite-lib htmx-src htmx-ws-src lucide-src inter-fonts-src ibm-plex-mono-src goModHash gitignoreSource;
85
68
};
86
-
in
87
-
mkPackageSet final;
69
+
spindle = pkgs.callPackage ./nix/pkgs/spindle.nix {inherit sqlite-lib goModHash gitignoreSource;};
70
+
knot-unwrapped = pkgs.callPackage ./nix/pkgs/knot-unwrapped.nix {inherit sqlite-lib goModHash gitignoreSource;};
71
+
knot = pkgs.callPackage ./nix/pkgs/knot.nix {inherit knot-unwrapped;};
72
+
in {
73
+
inherit lexgen appview spindle knot-unwrapped knot sqlite-lib genjwks;
74
+
};
75
+
in {
76
+
overlays.default = final: prev: mkPackageSet final;
88
77
89
78
packages = forAllSystems (system: let
90
79
pkgs = nixpkgsFor.${system};
91
-
staticPkgs = pkgs.pkgsStatic;
92
-
crossPkgs = pkgs.pkgsCross.gnu64.pkgsStatic;
80
+
packages = mkPackageSet pkgs;
81
+
staticPackages = mkPackageSet pkgs.pkgsStatic;
82
+
crossPackages = mkPackageSet pkgs.pkgsCross.gnu64.pkgsStatic;
93
83
in {
94
-
appview = pkgs.appview;
95
-
lexgen = pkgs.lexgen;
96
-
knot = pkgs.knot;
97
-
knot-unwrapped = pkgs.knot-unwrapped;
98
-
spindle = pkgs.spindle;
99
-
genjwks = pkgs.genjwks;
100
-
sqlite-lib = pkgs.sqlite-lib;
84
+
appview = packages.appview;
85
+
lexgen = packages.lexgen;
86
+
knot = packages.knot;
87
+
knot-unwrapped = packages.knot-unwrapped;
88
+
spindle = packages.spindle;
89
+
genjwks = packages.genjwks;
90
+
sqlite-lib = packages.sqlite-lib;
101
91
102
-
pkgsStatic-appview = staticPkgs.appview;
103
-
pkgsStatic-knot = staticPkgs.knot;
104
-
pkgsStatic-knot-unwrapped = staticPkgs.knot-unwrapped;
105
-
pkgsStatic-spindle = staticPkgs.spindle;
106
-
pkgsStatic-sqlite-lib = staticPkgs.sqlite-lib;
92
+
pkgsStatic-appview = staticPackages.appview;
93
+
pkgsStatic-knot = staticPackages.knot;
94
+
pkgsStatic-knot-unwrapped = staticPackages.knot-unwrapped;
95
+
pkgsStatic-spindle = staticPackages.spindle;
96
+
pkgsStatic-sqlite-lib = staticPackages.sqlite-lib;
107
97
108
-
pkgsCross-gnu64-pkgsStatic-appview = crossPkgs.appview;
109
-
pkgsCross-gnu64-pkgsStatic-knot = crossPkgs.knot;
110
-
pkgsCross-gnu64-pkgsStatic-knot-unwrapped = crossPkgs.knot-unwrapped;
111
-
pkgsCross-gnu64-pkgsStatic-spindle = crossPkgs.spindle;
98
+
pkgsCross-gnu64-pkgsStatic-appview = crossPackages.appview;
99
+
pkgsCross-gnu64-pkgsStatic-knot = crossPackages.knot;
100
+
pkgsCross-gnu64-pkgsStatic-knot-unwrapped = crossPackages.knot-unwrapped;
101
+
pkgsCross-gnu64-pkgsStatic-spindle = crossPackages.spindle;
112
102
});
113
-
defaultPackage = forAllSystems (system: nixpkgsFor.${system}.appview);
114
-
formatter = forAllSystems (system: nixpkgsFor."${system}".alejandra);
103
+
defaultPackage = forAllSystems (system: self.packages.${system}.appview);
104
+
formatter = forAllSystems (system: nixpkgsFor.${system}.alejandra);
115
105
devShells = forAllSystems (system: let
116
106
pkgs = nixpkgsFor.${system};
107
+
packages' = self.packages.${system};
117
108
staticShell = pkgs.mkShell.override {
118
109
stdenv = pkgs.pkgsStatic.stdenv;
119
110
};
···
124
115
pkgs.air
125
116
pkgs.gopls
126
117
pkgs.httpie
127
-
pkgs.lexgen
128
118
pkgs.litecli
129
119
pkgs.websocat
130
120
pkgs.tailwindcss
131
121
pkgs.nixos-shell
132
122
pkgs.redis
123
+
packages'.lexgen
133
124
];
134
125
shellHook = ''
135
126
mkdir -p appview/pages/static/{fonts,icons}
···
139
130
cp -f ${inter-fonts-src}/web/InterVariable*.woff2 appview/pages/static/fonts/
140
131
cp -f ${inter-fonts-src}/web/InterDisplay*.woff2 appview/pages/static/fonts/
141
132
cp -f ${ibm-plex-mono-src}/fonts/complete/woff2/IBMPlexMono-Regular.woff2 appview/pages/static/fonts/
142
-
export TANGLED_OAUTH_JWKS="$(${pkgs.genjwks}/bin/genjwks)"
133
+
export TANGLED_OAUTH_JWKS="$(${packages'.genjwks}/bin/genjwks)"
143
134
'';
144
135
env.CGO_ENABLED = 1;
145
136
};