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{
description = "A quick scaffolding system for go projects";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
packages.${system}.default = pkgs.buildGoModule {
pname = "scaffold";
version = "1.0.0";
src = ./.;
vendorHash = "sha256-kuheizBlwHUpozXPmFnoYOJ4zzyUDu3U5k8j0N1bhGc=";
# Critical: Wrap binary with runtime dependencies
nativeBuildInputs = [ pkgs.makeWrapper ];
postInstall = ''
# Rename binary
mv $out/bin/go-repo $out/bin/scaffold
# Wrap with required tools in PATH
wrapProgram $out/bin/scaffold \
--prefix PATH : ${pkgs.lib.makeBinPath [
pkgs.git
pkgs.gh
pkgs.devenv
pkgs.nix
pkgs.direnv
pkgs.age
]}
'';
};
devShells.${system}.default = pkgs.mkShell {
buildInputs = with pkgs; [
go
gopls
git
gh
devenv
age
direnv
];
};
};
}