pangolin-cli: init at 0.2.0

This commit is contained in:
Varun Narravula
2025-12-24 01:47:51 -08:00
parent 002d4e751d
commit a772721da0
2 changed files with 125 additions and 0 deletions
+55
View File
@@ -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";
};
})
@@ -0,0 +1,70 @@
commit f251229d0eed13b7863bac74c1a88dd45d94d3c5
Author: Varun Narravula <varun@snare.dev>
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=