-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
89 lines (78 loc) · 1.89 KB
/
Copy pathflake.nix
File metadata and controls
89 lines (78 loc) · 1.89 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{
description = "vmTUI for local QEMU virtual machines";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs =
{ self, nixpkgs, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
lib = pkgs.lib;
vmtuiSrc = lib.cleanSourceWith {
src = self;
filter =
path: type:
let
base = baseNameOf path;
in
!(base == "result" || base == ".cache");
};
vmtui-bin = pkgs.buildGoModule {
pname = "vmtui";
version = "0.1.0";
src = vmtuiSrc;
vendorHash = "sha256-pDWrBm5KANLz5GFEaJZupBM3d1hd9F6Vh0fHOmd1p5k=";
env.CGO_ENABLED = 0;
enableParallelBuilding = false;
ldflags = [
"-s"
"-w"
];
};
vmtui = pkgs.symlinkJoin {
name = "vmtui";
paths = [ vmtui-bin ];
nativeBuildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram "$out/bin/vmtui" \
--prefix PATH : ${
lib.makeBinPath [
pkgs.aria2
pkgs.qemu_kvm
]
}
'';
};
in
{
formatter.${system} = pkgs.nixfmt;
packages.${system} = {
inherit vmtui;
default = vmtui;
};
apps.${system} = {
default = {
type = "app";
program = "${vmtui}/bin/vmtui";
};
vmtui = {
type = "app";
program = "${vmtui}/bin/vmtui";
};
};
devShells.${system}.default = pkgs.mkShell {
packages = [
pkgs.aria2
pkgs.go
pkgs.qemu_kvm
];
shellHook = ''
mkdir -p .cache/go-build .cache/go-mod
echo "vmtui dev shell"
echo " run: go run ."
echo " fmt: nix fmt"
'';
};
};
}