Skip to content

Commit d59ec5e

Browse files
committed
flake: add package
1 parent 078d9c3 commit d59ec5e

File tree

2 files changed

+67
-6
lines changed

2 files changed

+67
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ deb/usr
1313
*.db*
1414
*.log
1515
.direnv
16+
result

flake.nix

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,78 @@
11
{
2-
description = "Gomuks development environment";
2+
description = "Gomuks development environment & packages";
33

44
inputs = {
55
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
66
flake-utils.url = "github:numtide/flake-utils";
77
};
88

9-
outputs = { self, nixpkgs, flake-utils }:
10-
(flake-utils.lib.eachDefaultSystem (system:
9+
outputs =
10+
{
11+
self,
12+
nixpkgs,
13+
flake-utils,
14+
...
15+
}:
16+
flake-utils.lib.eachDefaultSystem (
17+
system:
1118
let
1219
pkgs = import nixpkgs {
1320
inherit system;
14-
config.permittedInsecurePackages = [ "olm-3.2.16" ];
21+
config = {
22+
permittedInsecurePackages = [ "olm-3.2.16" ];
23+
};
24+
};
25+
26+
outPackages = self.outputs.packages.${system};
27+
28+
# Extract version from version.go
29+
versionContent = builtins.readFile ./version/version.go;
30+
versionMatch = builtins.match ''^.*const StaticVersion = "([0-9\.]+)".*$'' versionContent;
31+
version = builtins.elemAt versionMatch 0;
32+
in
33+
{
34+
packages = {
35+
gomuks = pkgs.buildGoModule {
36+
pname = "gomuks";
37+
inherit version;
38+
39+
src = ./.;
40+
41+
# Go dependency hash (should be updated when dependencies are)
42+
vendorHash = "sha256-4kdjyjAvZnKp9Ly5Y4EaVa0iGyIMjrmrc+nagCJA9/A=";
43+
44+
buildInputs = with pkgs; [
45+
outPackages.gomuks-web
46+
olm
47+
];
48+
49+
preBuild = ''
50+
cp -r ${outPackages.gomuks-web}/dist web/dist
51+
'';
52+
53+
# skip non-existant & broken pytest tests
54+
pytestCheckPhase = '':'';
55+
56+
subPackages = [ "cmd/gomuks" ];
57+
};
58+
# Package for building web dist
59+
gomuks-web = pkgs.buildNpmPackage rec {
60+
pname = "gomuks-web";
61+
inherit version;
62+
63+
src = ./web;
64+
65+
# Same as the Go dependency hash but for NPM packages
66+
npmDepsHash = "sha256-YUDRdelLnGhT5Yw+uc29AEZPRHZoZjqVZxCXwD2gqAs=";
67+
68+
installPhase = ''
69+
mkdir -p $out/dist
70+
cp -r dist/* $out/dist/
71+
'';
72+
};
73+
default = outPackages.gomuks;
1574
};
16-
in {
75+
1776
devShells = {
1877
default = pkgs.mkShell {
1978
packages = with pkgs; [
@@ -36,5 +95,6 @@
3695
];
3796
};
3897
};
39-
}));
98+
}
99+
);
40100
}

0 commit comments

Comments
 (0)