diff options
| author | Fuwn <[email protected]> | 2024-09-16 19:00:22 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-09-16 19:01:18 -0700 |
| commit | d1525c29af2f0c58fd4970fc33cc641cb460bbef (patch) | |
| tree | 8e930859a82585e1b29a5ab595197dbd14d7c537 /pkgs/bindtointerface.nix | |
| download | tsutsumi-d1525c29af2f0c58fd4970fc33cc641cb460bbef.tar.xz tsutsumi-d1525c29af2f0c58fd4970fc33cc641cb460bbef.zip | |
feat: initial release
Diffstat (limited to 'pkgs/bindtointerface.nix')
| -rw-r--r-- | pkgs/bindtointerface.nix | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/bindtointerface.nix b/pkgs/bindtointerface.nix new file mode 100644 index 0000000..6b26825 --- /dev/null +++ b/pkgs/bindtointerface.nix @@ -0,0 +1,48 @@ +{ + pkgs, + lib, + stdenv, + gcc, +}: +stdenv.mkDerivation { + pname = "bindtointerface"; + version = "1.0"; + nativeBuildInputs = [ gcc ]; + + src = pkgs.fetchFromGitHub { + owner = "JsBergbau"; + repo = "BindToInterface"; + rev = "d477326d85f64fdd1dc46382fe698e46f4843100"; + hash = "sha256-B29nXjy8RyFEOsYtko8l9i38sDauX2eW+pLsQssNTmQ="; + }; + + buildPhase = '' + gcc \ + -nostartfiles \ + -fpic \ + -shared $src/bindToInterface.c \ + -o bindToInterface.so \ + -ldl \ + -D_GNU_SOURCE + ''; + + installPhase = '' + mkdir -p $out/bin $out/lib + cp bindToInterface.so $out/lib + + cat <<EOF > $out/bin/vpn + #!/usr/bin/env bash + + env LD_PRELOAD=$out/lib/bindToInterface.so "\$@" + EOF + chmod +x $out/bin/vpn + ''; + + meta = with lib; { + description = "With this program you can bind applications to a specific network interface / network adapter."; + homepage = "https://github.com/JsBergbau/BindToInterface"; + license = licenses.gpl2; + maintainers = [ maintainers.Fuwn ]; + platforms = platforms.linux; + }; +} |