From a772721da00be196b2213a6abcccf6c99db74b39 Mon Sep 17 00:00:00 2001 From: Varun Narravula Date: Tue, 23 Dec 2025 17:52:27 -0800 Subject: [PATCH] pangolin-cli: init at 0.2.0 --- pkgs/by-name/pa/pangolin-cli/package.nix | 55 +++++++++++++++ .../use-tagged-newt-and-olm.patch | 70 +++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 pkgs/by-name/pa/pangolin-cli/package.nix create mode 100644 pkgs/by-name/pa/pangolin-cli/use-tagged-newt-and-olm.patch diff --git a/pkgs/by-name/pa/pangolin-cli/package.nix b/pkgs/by-name/pa/pangolin-cli/package.nix new file mode 100644 index 000000000000..a9783b4107d1 --- /dev/null +++ b/pkgs/by-name/pa/pangolin-cli/package.nix @@ -0,0 +1,55 @@ +{ + lib, + stdenv, + buildGoModule, + fetchFromGitHub, + installShellFiles, + versionCheckHook, + nix-update-script, +}: + +buildGoModule (finalAttrs: { + pname = "pangolin-cli"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "fosrl"; + repo = "cli"; + tag = finalAttrs.version; + hash = "sha256-NR8GaOtFjOk6LLTdtDw6Nu691B76bPwllA2EOPSaM94="; + }; + + patches = [ ./use-tagged-newt-and-olm.patch ]; + + vendorHash = "sha256-7LPnmbrIgWV5p4KCHfVVljRvadtZfg2FwLWIE/m3pi4="; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + mv $out/bin/cli $out/bin/pangolin + '' + + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd pangolin \ + --bash <($out/bin/pangolin completion bash) \ + --fish <($out/bin/pangolin completion fish) \ + --zsh <($out/bin/pangolin completion zsh) + ''; + + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckKeepEnvironment = [ "HOME" ]; + versionCheckProgramArg = "version"; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Pangolin CLI tool and VPN client"; + homepage = "https://github.com/fosrl/cli"; + changelog = "https://github.com/fosrl/cli/releases/tag/${finalAttrs.version}"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ + water-sucks + ]; + mainProgram = "pangolin"; + }; +}) diff --git a/pkgs/by-name/pa/pangolin-cli/use-tagged-newt-and-olm.patch b/pkgs/by-name/pa/pangolin-cli/use-tagged-newt-and-olm.patch new file mode 100644 index 000000000000..14bba945ded8 --- /dev/null +++ b/pkgs/by-name/pa/pangolin-cli/use-tagged-newt-and-olm.patch @@ -0,0 +1,70 @@ +commit f251229d0eed13b7863bac74c1a88dd45d94d3c5 +Author: Varun Narravula +Date: Tue Dec 23 15:00:11 2025 -0800 + + chore(deps): pin olm and newt to upstream tags + +diff --git a/go.mod b/go.mod +index 4635ea0..5d58e09 100644 +--- a/go.mod ++++ b/go.mod +@@ -7,11 +7,10 @@ require ( + github.com/charmbracelet/bubbletea v1.3.6 + github.com/charmbracelet/huh v0.8.0 + github.com/charmbracelet/lipgloss v1.1.0 +- github.com/fosrl/newt v0.0.0 +- github.com/fosrl/olm v0.0.0 ++ github.com/fosrl/newt v1.8.0 ++ github.com/fosrl/olm v1.3.0 + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c + github.com/spf13/cobra v1.10.1 +- github.com/spf13/pflag v1.0.10 + github.com/spf13/viper v1.21.0 + ) + +@@ -51,6 +50,7 @@ require ( + github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect + github.com/spf13/afero v1.15.0 // indirect + github.com/spf13/cast v1.10.0 // indirect ++ github.com/spf13/pflag v1.0.10 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/vishvananda/netlink v1.3.1 // indirect + github.com/vishvananda/netns v0.0.5 // indirect +@@ -74,6 +74,8 @@ require ( + software.sslmate.com/src/go-pkcs12 v0.6.0 // indirect + ) + +-replace github.com/fosrl/olm v0.0.0 => ../olm +- +-replace github.com/fosrl/newt v0.0.0 => ../newt ++// If changes to Olm or Newt are required, use these ++// replace directives during development. ++// ++// replace github.com/fosrl/olm => ../olm ++// replace github.com/fosrl/newt => ../newt +diff --git a/go.sum b/go.sum +index b4118da..de27625 100644 +--- a/go.sum ++++ b/go.sum +@@ -50,6 +50,10 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp + github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= + github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= + github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= ++github.com/fosrl/newt v1.8.0 h1:wIRCO2shhCpkFzsbNbb4g2LC7mPzIpp2ialNveBMJy4= ++github.com/fosrl/newt v1.8.0/go.mod h1:pol958CEs0nQmo/35Ltv0CGksheIKCS2hoNvdTVLEcI= ++github.com/fosrl/olm v1.3.0 h1:eYNFqcvTn5u8aujy4lIUDta8W3j09p91WkMcDWCp/VA= ++github.com/fosrl/olm v1.3.0/go.mod h1:FZ0L5GufoIOyZ00/49g8LKtkknodJkhM+icW5gOFdiw= + github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= + github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= + github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +@@ -60,8 +64,8 @@ github.com/godbus/dbus/v5 v5.2.0 h1:3WexO+U+yg9T70v9FdHr9kCxYlazaAXUhx2VMkbfax8= + github.com/godbus/dbus/v5 v5.2.0/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c= + github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= + github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +-github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +-github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= ++github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= ++github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= + github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= + github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= + github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=