Compare commits
2 commits
5acb380fc0
...
5e489fb7c8
| Author | SHA1 | Date | |
|---|---|---|---|
| 5e489fb7c8 | |||
| a87738a2ff |
3 changed files with 73 additions and 13 deletions
|
|
@ -47,6 +47,7 @@
|
|||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
alias.ts = "!${lib.getExe pkgs.fc-scripts.git-tree-sync} sync";
|
||||
credential.helper = "cache";
|
||||
push.default = "simple";
|
||||
push.forceIfIncludes = true; # avoid accidental force overrides when remote is autofetched in background
|
||||
|
|
|
|||
|
|
@ -85,8 +85,14 @@ let
|
|||
|
||||
nix-output-monitor # putting this here as a plain `nix` alternative
|
||||
|
||||
fc-scripts # this might turn out to be useful even in non-work environments?
|
||||
]
|
||||
++ (with fc-scripts; [
|
||||
|
||||
git-tree-sync
|
||||
ssh-multi-proxy
|
||||
mosh-tunnel
|
||||
mosh-dualstack-proxy # this might turn out to be useful even in non-work environments?
|
||||
])
|
||||
++ lib.optionals pkgs.stdenv.isLinux [
|
||||
xclip
|
||||
smbnetfs # for FUSE smb mounting
|
||||
|
|
|
|||
|
|
@ -1,27 +1,80 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
runCommand,
|
||||
python3,
|
||||
stdenvNoCC,
|
||||
makeWrapper,
|
||||
git,
|
||||
openssh,
|
||||
mosh,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "fc-scripts";
|
||||
version = "20260202";
|
||||
let
|
||||
src = fetchFromGitHub {
|
||||
owner = "flyingcircusio";
|
||||
repo = "scripts";
|
||||
rev = "887f066006829fc3ee44b3cfbe748c578ea2e7c1";
|
||||
hash = "sha256-mrL/dULb0NKw8cH9ferzfDdRjhWANrWQg/u7FNCtzWw=";
|
||||
};
|
||||
|
||||
buildInputs = [ python3 ];
|
||||
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
|
||||
cp *.py $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
|
||||
];
|
||||
};
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue