nixpkgs/pkgs/by-name/hy/hyprspace/package.nix
2024-07-16 09:20:50 -04:00

60 lines
1.4 KiB
Nix

{
lib,
buildGoModule,
fetchFromGitHub,
writeShellScript,
nix-update,
nix,
}:
buildGoModule rec {
pname = "hyprspace";
version = "0.10.2";
src = fetchFromGitHub {
owner = "hyprspace";
repo = "hyprspace";
rev = "refs/tags/v${version}";
hash = "sha256-zWajCfHFqPa3Z72DHcxBUq4bmcCu1lpEKUbZZewpYOE=";
};
CGO_ENABLED = "0";
vendorHash = "sha256-LJpgGeD47Bs+Cq9Z7WWFa49F8/n3exOyxRcd6EkkL2g=";
ldflags = [
"-s"
"-w"
"-X github.com/hyprspace/hyprspace/cli.appVersion=${version}"
];
preBuild = ''
ln -s ${./config_generated.go} ./schema/config_generated.go
'';
passthru.updateScript = writeShellScript "update" ''
${lib.getExe nix-update} hyprspace
nix () {
${lib.getExe nix} --extra-experimental-features 'flakes nix-command' "$@"
}
cat "$(
nix build --print-out-paths --no-link \
"github:hyprspace/hyprspace?ref=refs/tags/v$(
nix eval .#hyprspace.version --raw
)#vendor"
)/schema/config_generated.go" \
> pkgs/by-name/hy/hyprspace/config_generated.go
'';
meta = {
description = "Lightweight VPN Built on top of Libp2p for Truly Distributed Networks";
homepage = "https://github.com/hyprspace/hyprspace";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
gerg-l
max
];
platforms = lib.platforms.linux;
mainProgram = "hyprspace";
};
}