Repository navigation
Expand file tree
/
Copy pathflake.nix
More file actions
68 lines (66 loc) · 2.66 KB
/
Copy pathflake.nix
File metadata and controls
68 lines (66 loc) · 2.66 KB
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
{
description = "voom local VM manager";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
version = pkgs.lib.removeSuffix "\n" (builtins.readFile ./VERSION);
commit = self.rev or self.dirtyRev or "dirty";
modified = self.lastModifiedDate or null;
date =
if modified == null then "unknown"
else "${builtins.substring 0 4 modified}-${builtins.substring 4 2 modified}-${builtins.substring 6 2 modified}T${builtins.substring 8 2 modified}:${builtins.substring 10 2 modified}:${builtins.substring 12 2 modified}Z";
gvproxySource = pkgs.callPackage ./nix/gvproxy-source.nix { };
gvproxyLicenses = pkgs.callPackage ./nix/gvproxy-licenses.nix { inherit gvproxySource; };
gvproxy = pkgs.callPackage ./nix/gvproxy.nix {
inherit gvproxyLicenses gvproxySource;
gvproxyNotice = ./nix/NOTICE.gvproxy;
};
voom = pkgs.buildGoModule {
pname = "voom";
inherit version;
src = self;
subPackages = [ "cmd/voom" ];
vendorHash = "sha256-fxOjkVStDgZInA0/HEzi1/ZaI0XO+bc7sI94ok0QenY=";
ldflags = [
"-X github.com/mjrusso/voom/internal/cli.version=${version}"
"-X github.com/mjrusso/voom/internal/cli.commit=${commit}"
"-X github.com/mjrusso/voom/internal/cli.date=${date}"
];
postInstall = ''
ln -s ${gvproxy}/bin/gvproxy $out/bin/gvproxy
mkdir -p $out/share/licenses
ln -s ${gvproxy}/share/licenses/gvproxy $out/share/licenses/gvproxy
'';
};
ciPackages = with pkgs; [
go
git
just
goreleaser
go-licenses
golangci-lint
actionlint
gvproxy
];
in {
packages.gvproxy = gvproxy;
packages.gvproxy-source = gvproxySource;
packages.voom = voom;
packages.default = voom;
apps.voom = flake-utils.lib.mkApp { drv = voom; };
apps.default = self.apps.${system}.voom;
devShells.ci = pkgs.mkShell { packages = ciPackages; };
devShells.default = pkgs.mkShell {
packages = ciPackages ++ [ pkgs.gopls pkgs.gotools ]
++ pkgs.lib.optionals pkgs.stdenv.isLinux [ pkgs.inotify-tools pkgs.libnotify ]
++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.terminal-notifier ];
};
checks.voom = voom;
checks.gvproxy = gvproxy;
});
}