{ lib, fetchFromGitHub, python3, stdenvNoCC, makeWrapper, git, openssh, mosh, }: let src = fetchFromGitHub { owner = "flyingcircusio"; repo = "scripts"; rev = "887f066006829fc3ee44b3cfbe748c578ea2e7c1"; hash = "sha256-mrL/dULb0NKw8cH9ferzfDdRjhWANrWQg/u7FNCtzWw="; }; version = "20260202"; mkFcScriptDrv = { pname, propagatedBuildInputs, python ? python3, ... }@args: stdenvNoCC.mkDerivation (finalAttrs: { inherit (args) pname propagatedBuildInputs ; inherit src version; # not passed via function args, but can be overridden later via overrideAttrs dontBuild = true; dontConfigure = true; buildInputs = [ python ]; # the python interpreter utilised by patchShebangs nativeBuildInputs = [ makeWrapper ]; installPhase = '' runHook preInstall mkdir -p $out/bin install -m 0755 ${pname}* $out/bin/${pname} '' + lib.optionalString (finalAttrs.propagatedBuildInputs != [ ]) '' wrapProgram $out/bin/${pname} --prefix PATH : \ ${lib.makeBinPath finalAttrs.propagatedBuildInputs} '' + "runHook postInstall"; meta.mainProgram = pname; }); in { git-tree-sync = mkFcScriptDrv { pname = "git-tree-sync"; propagatedBuildInputs = [ git openssh ]; }; ssh-multi-proxy = mkFcScriptDrv { pname = "ssh-multi-proxy"; propagatedBuildInputs = [ openssh ]; }; mosh-tunnel = mkFcScriptDrv { pname = "mosh-tunnel"; propagatedBuildInputs = [ mosh openssh ]; python = python3.withPackages (ps: [ ps.asyncio-dgram ]); }; mosh-dualstack-proxy = mkFcScriptDrv { pname = "mosh-dualstack-proxy"; propagatedBuildInputs = [ python3 mosh openssh ]; }; }