git-ftp: use resholve.mkDerivation
This commit is contained in:
parent
58de79e9a6
commit
c5181ce2d7
1 changed files with 75 additions and 3 deletions
|
@ -1,5 +1,22 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pandoc, man }:
|
||||
stdenv.mkDerivation rec {
|
||||
{ lib
|
||||
, resholve
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, bash
|
||||
, coreutils
|
||||
, git
|
||||
, gnugrep
|
||||
, gawk
|
||||
, curl
|
||||
, hostname
|
||||
, gnused
|
||||
, findutils
|
||||
, lftp
|
||||
, pandoc
|
||||
, man
|
||||
}:
|
||||
|
||||
resholve.mkDerivation rec {
|
||||
pname = "git-ftp";
|
||||
version = "1.6.0";
|
||||
src = fetchFromGitHub {
|
||||
|
@ -11,11 +28,66 @@ stdenv.mkDerivation rec {
|
|||
|
||||
dontBuild = true;
|
||||
|
||||
# fix bug/typo; PRed upstream @
|
||||
# https://github.com/git-ftp/git-ftp/pull/628
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "fix-function-invocation-typo.patch";
|
||||
url = "https://github.com/git-ftp/git-ftp/commit/cddf7cbba80e710758f6aac0ec0d77552ea8cd75.patch";
|
||||
sha256 = "sha256-2B0QaMJi78Bg3bA1jp41aiyql1/LCryoaDs7+xmS1HY=";
|
||||
})
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
make install-all prefix=$out
|
||||
'';
|
||||
|
||||
buildInputs = [pandoc man];
|
||||
nativeBuildInputs = [ pandoc man ];
|
||||
|
||||
solutions = {
|
||||
git-ftp = {
|
||||
scripts = [ "bin/git-ftp" ];
|
||||
interpreter = "${bash}/bin/bash";
|
||||
inputs = [
|
||||
coreutils
|
||||
git
|
||||
gnugrep
|
||||
gawk
|
||||
curl
|
||||
hostname
|
||||
gnused
|
||||
findutils
|
||||
lftp
|
||||
];
|
||||
fake = {
|
||||
# don't resolve impure system macOS security
|
||||
# caution: will still be fragile if PATH is bad
|
||||
# TODO: fixable once we figure out how to handle
|
||||
# this entire class of problem...
|
||||
"external" = [ "security" ];
|
||||
};
|
||||
keep = {
|
||||
# looks like run-time user/env/git-config controlled
|
||||
"$GIT_PAGER" = true;
|
||||
"$hook" = true; # presumably git hooks given context
|
||||
};
|
||||
execer = [
|
||||
# TODO: rm when binlore/resholve handle git; manually
|
||||
# checked and see no obvious subexec for now
|
||||
"cannot:${git}/bin/git"
|
||||
/*
|
||||
Mild uncertainty here. There *are* commandlikes in
|
||||
the arguments (especially wait & cd), but I think they are
|
||||
fine as-is, because I'm reading them as:
|
||||
1. ftp commands
|
||||
2. running on the remote anyways
|
||||
|
||||
See https://github.com/git-ftp/git-ftp/blob/057f7d8e9f00ffc5a8c6ceaa4be30af2939df41a/git-ftp#L1214-L1221
|
||||
*/
|
||||
"cannot:${lftp}/bin/lftp"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Git powered FTP client written as shell script";
|
||||
|
|
Loading…
Reference in a new issue