diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix new file mode 100644 index 000000000000..e79ca515b518 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix @@ -0,0 +1,46 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper, coreutils +, openvpn, python, dialog, wget, update-resolv-conf }: + +let + expectedUpdateResolvPath = "/etc/openvpn/update-resolv-conf"; + actualUpdateResolvePath = "${update-resolv-conf}/libexec/openvpn/update-resolv-conf"; + +in stdenv.mkDerivation rec { + name = "protonvpn-cli"; + version = "1.1.2"; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "protonvpn-cli"; + rev = "v${version}"; + sha256 = "0xvflr8zf267n3dv63nkk4wjxhbckw56sqmyca3krf410vrd7zlv"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p "$out/bin" + substituteInPlace protonvpn-cli.sh \ + --replace ${expectedUpdateResolvPath} ${actualUpdateResolvePath} \ + --replace \$UID 0 \ + --replace /etc/resolv.conf /dev/null \ + --replace \ + " echo \"Connecting...\"" \ + " sed -ri 's@${expectedUpdateResolvPath}@${actualUpdateResolvePath}@g' \"\$openvpn_config\"; echo \"Connecting...\"" + cp protonvpn-cli.sh "$out/bin/protonvpn-cli" + ln -s "$out/bin/protonvpn-cli" "$out/bin/pvpn" + ''; + + postInstallPhase = '' + wrapProgram $out/protonvpn-cli \ + --prefix PATH : ${lib.makeBinPath [ coreutils openvpn python dialog wget update-resolv-conf ]} + ''; + + meta = with stdenv.lib; { + description = "ProtonVPN Command-Line Tool"; + homepage = https://github.com/ProtonVPN/protonvpn-cli; + maintainers = with maintainers; [ caugner ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} |