tangled
alpha
login
or
join now
dunkirk.sh
/
akami
1
fork
atom
🌷 the cutsie hackatime helper
1
fork
atom
overview
issues
pulls
pipelines
feat: update flake to be fancy
dunkirk.sh
8 months ago
f1fcd352
a668bdd9
verified
This commit was signed with the committer's
known signature
.
dunkirk.sh
SSH Key Fingerprint:
SHA256:DqcG0RXYExE26KiWo3VxJnsxswN1QNfTBvB+bdSpk80=
+112
-69
1 changed file
expand all
collapse all
unified
split
flake.nix
+112
-69
flake.nix
···
5
5
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
6
};
7
7
8
8
-
outputs = { self, nixpkgs }:
8
8
+
outputs =
9
9
+
{ self, nixpkgs }:
9
10
let
10
11
allSystems = [
11
12
"x86_64-linux" # 64-bit Intel/AMD Linux
···
13
14
"x86_64-darwin" # 64-bit Intel macOS
14
15
"aarch64-darwin" # 64-bit ARM macOS
15
16
];
16
16
-
forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f {
17
17
-
pkgs = import nixpkgs { inherit system; };
18
18
-
});
17
17
+
forAllSystems =
18
18
+
f:
19
19
+
nixpkgs.lib.genAttrs allSystems (
20
20
+
system:
21
21
+
f {
22
22
+
pkgs = import nixpkgs { inherit system; };
23
23
+
}
24
24
+
);
19
25
in
20
26
{
21
21
-
packages = forAllSystems ({ pkgs }: {
22
22
-
default = pkgs.buildGoModule {
23
23
-
pname = "akami";
24
24
-
version = "0.0.1";
25
25
-
subPackages = [ "." ]; # Build from root directory
26
26
-
src = ./.;
27
27
-
vendorHash = "sha256-9gO00c3D846SJl5dbtfj0qasmONLNxU/7V1TG6QEaxM=";
28
28
-
};
29
29
-
});
27
27
+
packages = forAllSystems (
28
28
+
{ pkgs }:
29
29
+
let
30
30
+
akami = pkgs.buildGoModule {
31
31
+
pname = "akami";
32
32
+
version = "0.0.1";
33
33
+
subPackages = [ "." ]; # Build from root directory
34
34
+
src = self;
35
35
+
vendorHash = "sha256-9gO00c3D846SJl5dbtfj0qasmONLNxU/7V1TG6QEaxM=";
36
36
+
37
37
+
nativeBuildInputs = [ pkgs.installShellFiles ];
38
38
+
39
39
+
postInstall = ''
40
40
+
installShellCompletion --cmd crush \
41
41
+
--bash <($out/bin/crush completion bash) \
42
42
+
--fish <($out/bin/crush completion fish) \
43
43
+
--zsh <($out/bin/crush completion zsh)
44
44
+
45
45
+
# Generate and install man page
46
46
+
$out/bin/crush man > crush.1
47
47
+
installManPage crush.1
48
48
+
'';
49
49
+
50
50
+
meta = with pkgs.lib; {
51
51
+
description = "🌷 the cutsie hackatime helper";
52
52
+
homepage = "https://github.com/taciturnaxolotl/akami";
53
53
+
license = licenses.mit;
54
54
+
maintainers = with maintainers; [ taciturnaxolotl ];
55
55
+
platforms = platforms.linux ++ platforms.darwin;
56
56
+
};
57
57
+
};
58
58
+
in
59
59
+
{
60
60
+
default = akami;
61
61
+
}
62
62
+
);
63
63
+
64
64
+
devShells = forAllSystems (
65
65
+
{ pkgs }:
66
66
+
{
67
67
+
default = pkgs.mkShell {
68
68
+
buildInputs = with pkgs; [
69
69
+
go
70
70
+
gopls
71
71
+
gotools
72
72
+
go-tools
73
73
+
(pkgs.writeShellScriptBin "akami-dev" ''
74
74
+
go build -o ./bin/akami ./main.go
75
75
+
./bin/akami "$@" || true
76
76
+
'')
77
77
+
(pkgs.writeShellScriptBin "akami-build" ''
78
78
+
echo "Building akami binaries for all platforms..."
79
79
+
mkdir -p $PWD/bin
30
80
31
31
-
devShells = forAllSystems ({ pkgs }: {
32
32
-
default = pkgs.mkShell {
33
33
-
buildInputs = with pkgs; [
34
34
-
go
35
35
-
gopls
36
36
-
gotools
37
37
-
go-tools
38
38
-
(pkgs.writeShellScriptBin "akami-dev" ''
39
39
-
go build -o ./bin/akami ./main.go
40
40
-
./bin/akami "$@" || true
41
41
-
'')
42
42
-
(pkgs.writeShellScriptBin "akami-build" ''
43
43
-
echo "Building akami binaries for all platforms..."
44
44
-
mkdir -p $PWD/bin
81
81
+
# Build for Linux (64-bit)
82
82
+
echo "Building for Linux (x86_64)..."
83
83
+
GOOS=linux GOARCH=amd64 go build -o $PWD/bin/akami-linux-amd64 ./main.go
45
84
46
46
-
# Build for Linux (64-bit)
47
47
-
echo "Building for Linux (x86_64)..."
48
48
-
GOOS=linux GOARCH=amd64 go build -o $PWD/bin/akami-linux-amd64 ./main.go
85
85
+
# Build for Linux ARM (64-bit)
86
86
+
echo "Building for Linux (aarch64)..."
87
87
+
GOOS=linux GOARCH=arm64 go build -o $PWD/bin/akami-linux-arm64 ./main.go
49
88
50
50
-
# Build for Linux ARM (64-bit)
51
51
-
echo "Building for Linux (aarch64)..."
52
52
-
GOOS=linux GOARCH=arm64 go build -o $PWD/bin/akami-linux-arm64 ./main.go
89
89
+
# Build for macOS (64-bit Intel)
90
90
+
echo "Building for macOS (x86_64)..."
91
91
+
GOOS=darwin GOARCH=amd64 go build -o $PWD/bin/akami-darwin-amd64 ./main.go
53
92
54
54
-
# Build for macOS (64-bit Intel)
55
55
-
echo "Building for macOS (x86_64)..."
56
56
-
GOOS=darwin GOARCH=amd64 go build -o $PWD/bin/akami-darwin-amd64 ./main.go
93
93
+
# Build for macOS ARM (64-bit)
94
94
+
echo "Building for macOS (aarch64)..."
95
95
+
GOOS=darwin GOARCH=arm64 go build -o $PWD/bin/akami-darwin-arm64 ./main.go
57
96
58
58
-
# Build for macOS ARM (64-bit)
59
59
-
echo "Building for macOS (aarch64)..."
60
60
-
GOOS=darwin GOARCH=arm64 go build -o $PWD/bin/akami-darwin-arm64 ./main.go
97
97
+
# Build for Windows (64-bit)
98
98
+
echo "Building for Windows (x86_64)..."
99
99
+
GOOS=windows GOARCH=amd64 go build -o $PWD/bin/akami-windows-amd64.exe ./main.go
61
100
62
62
-
# Build for Windows (64-bit)
63
63
-
echo "Building for Windows (x86_64)..."
64
64
-
GOOS=windows GOARCH=amd64 go build -o $PWD/bin/akami-windows-amd64.exe ./main.go
101
101
+
echo "All binaries built successfully in $PWD/bin/"
102
102
+
ls -la $PWD/bin/
103
103
+
'')
104
104
+
];
65
105
66
66
-
echo "All binaries built successfully in $PWD/bin/"
67
67
-
ls -la $PWD/bin/
68
68
-
'')
69
69
-
];
106
106
+
shellHook = ''
107
107
+
export PATH=$PATH:$PWD/bin
108
108
+
mkdir -p $PWD/bin
109
109
+
'';
110
110
+
};
111
111
+
}
112
112
+
);
70
113
71
71
-
shellHook = ''
72
72
-
export PATH=$PATH:$PWD/bin
73
73
-
mkdir -p $PWD/bin
74
74
-
'';
75
75
-
};
76
76
-
});
114
114
+
apps = forAllSystems (
115
115
+
{ pkgs }:
116
116
+
{
117
117
+
default = {
118
118
+
type = "app";
119
119
+
program = "${self.packages.${pkgs.system}.default}/bin/akami";
120
120
+
};
121
121
+
akami-dev = {
122
122
+
type = "app";
123
123
+
program = toString (
124
124
+
pkgs.writeShellScript "akami-dev" ''
125
125
+
go build -o ./bin/akami ./main.go
126
126
+
./bin/akami $* || true
127
127
+
''
128
128
+
);
129
129
+
};
130
130
+
akami-build = {
131
131
+
type = "app";
132
132
+
program = "${self.devShells.${pkgs.system}.default.inputDerivation}/bin/akami-build";
133
133
+
};
134
134
+
}
135
135
+
);
77
136
78
78
-
apps = forAllSystems ({ pkgs }: {
79
79
-
default = {
80
80
-
type = "app";
81
81
-
program = "${self.packages.${pkgs.system}.default}/bin/akami";
82
82
-
};
83
83
-
akami-dev = {
84
84
-
type = "app";
85
85
-
program = toString (pkgs.writeShellScript "akami-dev" ''
86
86
-
go build -o ./bin/akami ./main.go
87
87
-
./bin/akami $* || true
88
88
-
'');
89
89
-
};
90
90
-
akami-build = {
91
91
-
type = "app";
92
92
-
program = "${self.devShells.${pkgs.system}.default.inputDerivation}/bin/akami-build";
93
93
-
};
94
94
-
});
137
137
+
formatter = forAllSystems ({ pkgs }: pkgs.nixfmt-tree);
95
138
};
96
139
}