uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
|
|
@ -0,0 +1,48 @@
|
|||
{ lib, stdenv, fetchurl, jre, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bfg-repo-cleaner";
|
||||
version = "1.13.0";
|
||||
|
||||
jarName = "bfg-${version}.jar";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://maven/com/madgag/bfg/${version}/${jarName}";
|
||||
sha256 = "1kn84rsvms1v5l1j2xgrk7dc7mnsmxkc6sqd94mnim22vnwvl8mz";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ jre ];
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/java
|
||||
mkdir -p $out/bin
|
||||
cp $src $out/share/java/$jarName
|
||||
makeWrapper "${jre}/bin/java" $out/bin/bfg --add-flags "-cp $out/share/java/$jarName com.madgag.git.bfg.cli.Main"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://rtyley.github.io/bfg-repo-cleaner/";
|
||||
# Descriptions taken with minor modification from the homepage of bfg-repo-cleaner
|
||||
description = "Removes large or troublesome blobs in a git repository like git-filter-branch does, but faster";
|
||||
longDescription = ''
|
||||
The BFG is a simpler, faster alternative to git-filter-branch for
|
||||
cleansing bad data out of your Git repository history, in particular removing
|
||||
crazy big files and removing passwords, credentials, and other private data.
|
||||
|
||||
The git-filter-branch command is enormously powerful and can do things
|
||||
that the BFG can't - but the BFG is much better for the tasks above, because
|
||||
it's faster (10-720x), simpler (dedicated to just removing things), and
|
||||
beautiful (can use Scala instead of bash to script customizations).
|
||||
'';
|
||||
sourceProvenance = with sourceTypes; [ binaryBytecode ];
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.changlinli ];
|
||||
mainProgram = "bfg";
|
||||
platforms = platforms.unix;
|
||||
downloadPage = "https://mvnrepository.com/artifact/com.madgag/bfg/${version}";
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, git
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "bit";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chriswalz";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-18R0JGbG5QBDghF4SyhXaKe9UY5UzF7Ap0Y061Z1SZ8=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-3Y/B14xX5jaoL44rq9+Nn4niGViLPPXBa8WcJgTvYTA=";
|
||||
|
||||
propagatedBuildInputs = [ git ];
|
||||
|
||||
# Tests require a repository
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command-line tool for git";
|
||||
homepage = "https://github.com/chriswalz/bit";
|
||||
license = with licenses; [ asl20 ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
source 'https://rubygems.org'
|
||||
gem 'atlassian-stash'
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.5.0)
|
||||
public_suffix (~> 2.0, >= 2.0.2)
|
||||
atlassian-stash (0.7.0)
|
||||
commander (~> 4.1.2)
|
||||
git (>= 1.2.5)
|
||||
json (>= 1.7.5)
|
||||
launchy (~> 2.4.2)
|
||||
commander (4.1.6)
|
||||
highline (~> 1.6.11)
|
||||
git (1.3.0)
|
||||
highline (1.6.21)
|
||||
json (2.0.2)
|
||||
launchy (2.4.3)
|
||||
addressable (~> 2.3)
|
||||
public_suffix (2.0.5)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
atlassian-stash
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
|
||||
|
||||
bundlerEnv rec {
|
||||
name = "bitbucket-server-cli-${version}";
|
||||
|
||||
version = (import ./gemset.nix).atlassian-stash.version;
|
||||
inherit ruby;
|
||||
gemdir = ./.;
|
||||
|
||||
pname = "atlassian-stash";
|
||||
|
||||
passthru.updateScript = bundlerUpdateScript "bitbucket-server-cli";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A command line interface to interact with BitBucket Server (formerly Atlassian Stash)";
|
||||
homepage = "https://bitbucket.org/atlassian/bitbucket-server-cli";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ jgertm nicknovitski ];
|
||||
mainProgram = "stash";
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
{
|
||||
addressable = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1j5r0anj8m4qlf2psnldip4b8ha2bsscv11lpdgnfh4nnchzjnxw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.5.0";
|
||||
};
|
||||
atlassian-stash = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1rsf9h5w5wiglwv0fqwp45fq06fxbg68cqkc3bpqvps1i1qm0p6i";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.7.0";
|
||||
};
|
||||
commander = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0x9i8hf083wjlgj09nl1p9j8sr5g7amq0fdmxjqs4cxdbg3wpmsb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.6";
|
||||
};
|
||||
git = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1waikaggw7a1d24nw0sh8fd419gbf7awh000qhsf411valycj6q3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.3.0";
|
||||
};
|
||||
highline = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "06bml1fjsnrhd956wqq5k3w8cyd09rv1vixdpa3zzkl6xs72jdn1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.6.21";
|
||||
};
|
||||
json = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1lhinj9vj7mw59jqid0bjn2hlfcnq02bnvsx9iv81nl2han603s0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.2";
|
||||
};
|
||||
launchy = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.4.3";
|
||||
};
|
||||
public_suffix = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.5";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
{ lib
|
||||
, buildPythonApplication
|
||||
, fetchFromGitHub
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, testfixtures
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "bump2version";
|
||||
version = "1.0.1";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "c4urself";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-j6HKi3jTwSgGBrA8PCJJNg+yQqRMo1aqaLgPGf4KAKU=";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
testfixtures
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# X's in pytest are git tests which won't run in sandbox
|
||||
"usage_string_fork"
|
||||
"test_usage_string"
|
||||
"test_defaults_in_usage_with_config"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "bumpversion" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Version-bump your software with a single command";
|
||||
longDescription = ''
|
||||
A small command line tool to simplify releasing software by updating
|
||||
all version strings in your source code by the correct increment.
|
||||
'';
|
||||
homepage = "https://github.com/c4urself/bump2version";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ jefflabonte ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
{ pname, version, src, gitSrc, buildInputs ? []
|
||||
, homepage, description, maintainers
|
||||
}:
|
||||
|
||||
{ lib, stdenv, openssl, zlib, asciidoc, libxml2, libxslt
|
||||
, docbook_xsl, pkg-config
|
||||
, coreutils, gnused, groff, docutils
|
||||
, gzip, bzip2, lzip, xz, zstd
|
||||
, python3Packages
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
inherit pname version src gitSrc;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config asciidoc
|
||||
] ++ (with python3Packages; [ python wrapPython ]);
|
||||
buildInputs = buildInputs ++ [
|
||||
openssl zlib libxml2 libxslt docbook_xsl
|
||||
];
|
||||
pythonPath = with python3Packages; [ pygments markdown ];
|
||||
|
||||
postPatch = ''
|
||||
sed -e 's|"gzip"|"${gzip}/bin/gzip"|' \
|
||||
-e 's|"bzip2"|"${bzip2.bin}/bin/bzip2"|' \
|
||||
-e 's|"lzip"|"${lzip}/bin/lzip"|' \
|
||||
-e 's|"xz"|"${xz.bin}/bin/xz"|' \
|
||||
-e 's|"zstd"|"${zstd}/bin/zstd"|' \
|
||||
-i ui-snapshot.c
|
||||
|
||||
substituteInPlace filters/html-converters/man2html \
|
||||
--replace 'groff' '${groff}/bin/groff'
|
||||
|
||||
substituteInPlace filters/html-converters/rst2html \
|
||||
--replace 'rst2html.py' '${docutils}/bin/rst2html.py'
|
||||
'';
|
||||
|
||||
# Give cgit a git source tree and pass configuration parameters (as make
|
||||
# variables).
|
||||
preBuild = ''
|
||||
mkdir -p git
|
||||
tar --strip-components=1 -xf "$gitSrc" -C git
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"prefix=$(out)"
|
||||
"CGIT_SCRIPT_PATH=$(out)/cgit/"
|
||||
"CC=${stdenv.cc.targetPrefix}cc"
|
||||
"AR=${stdenv.cc.targetPrefix}ar"
|
||||
];
|
||||
|
||||
# Install manpage.
|
||||
postInstall = ''
|
||||
# xmllint fails:
|
||||
#make install-man
|
||||
|
||||
# bypassing xmllint works:
|
||||
a2x --no-xmllint -f manpage cgitrc.5.txt
|
||||
mkdir -p "$out/share/man/man5"
|
||||
cp cgitrc.5 "$out/share/man/man5"
|
||||
|
||||
wrapPythonProgramsIn "$out/lib/cgit/filters" "$out $pythonPath"
|
||||
|
||||
for script in $out/lib/cgit/filters/*.sh $out/lib/cgit/filters/html-converters/txt2html; do
|
||||
wrapProgram $script --prefix PATH : '${lib.makeBinPath [ coreutils gnused ]}'
|
||||
done
|
||||
'';
|
||||
|
||||
stripDebugList = [ "cgit" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
inherit homepage description;
|
||||
license = lib.licenses.gpl2;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = maintainers ++ (with lib.maintainers; [ qyliss ]);
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, fetchurl, callPackage, luajit }:
|
||||
|
||||
callPackage (import ./common.nix rec {
|
||||
pname = "cgit";
|
||||
version = "1.2.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.zx2c4.com/cgit/snapshot/${pname}-${version}.tar.xz";
|
||||
sha256 = "193d990ym10qlslk0p8mjwp2j6rhqa7fq0y1iff65lvbyv914pss";
|
||||
};
|
||||
|
||||
# cgit is tightly coupled with git and needs a git source tree to build.
|
||||
# IMPORTANT: Remember to check which git version cgit needs on every version
|
||||
# bump (look for "GIT_VER" in the top-level Makefile).
|
||||
gitSrc = fetchurl {
|
||||
url = "mirror://kernel/software/scm/git/git-2.25.1.tar.xz";
|
||||
sha256 = "09lzwa183nblr6l8ib35g2xrjf9wm9yhk3szfvyzkwivdv69c9r2";
|
||||
};
|
||||
|
||||
buildInputs = [ luajit ];
|
||||
|
||||
homepage = "https://git.zx2c4.com/cgit/about/";
|
||||
description = "Web frontend for git repositories";
|
||||
maintainers = with lib.maintainers; [ bjornfor ];
|
||||
}) {}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{ lib, fetchurl, callPackage }:
|
||||
|
||||
callPackage (import ./common.nix rec {
|
||||
pname = "cgit-pink";
|
||||
version = "1.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.causal.agency/cgit-pink/snapshot/cgit-pink-${version}.tar.gz";
|
||||
sha256 = "1ma6j3r4ba5fhd47pc6xn5bmxaqr8ci2pvky9v100n1hh5n6q97i";
|
||||
};
|
||||
|
||||
# cgit-pink is tightly coupled with git and needs a git source tree to build.
|
||||
# IMPORTANT: Remember to check which git version cgit-pink needs on every
|
||||
# version bump (look for "GIT_VER" in the top-level Makefile).
|
||||
gitSrc = fetchurl {
|
||||
url = "mirror://kernel/software/scm/git/git-2.36.1.tar.xz";
|
||||
sha256 = "0w43a35mhc2qf2gjkxjlnkf2lq8g0snf34iy5gqx2678yq7llpa0";
|
||||
};
|
||||
|
||||
homepage = "https://git.causal.agency/cgit-pink/about/";
|
||||
description = "cgit fork aiming for better maintenance";
|
||||
maintainers = with lib.maintainers; [ sternenseemann ];
|
||||
}) {}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, git }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "conform";
|
||||
version = "0.1.0-alpha.25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "siderolabs";
|
||||
repo = "conform";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-WgWgigpqPoEBY4tLjbzK02WFwrCWPGQWJ5eakLv5IWw=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-Oigt7tAK4jhBQtfG1wdLHqi11NWu6uJn5fmuqTmR76E=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/talos-systems/conform/internal/version.Tag=v${version}"
|
||||
];
|
||||
|
||||
checkInputs = [ git ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Policy enforcement for your pipelines";
|
||||
homepage = "https://github.com/siderolabs/conform";
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [ jmgilman jk ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
{ lib, stdenv, fetchFromGitHub, ruby, gnugrep, diffutils, git, darcs }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "darcs-to-git";
|
||||
version = "2015-06-04";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "purcell";
|
||||
repo = "darcs-to-git";
|
||||
rev = "e5fee32495908fe0f7d700644c7b37347b7a0a5b";
|
||||
sha256 = "sha256-UQI3av+0zj1SNwEonwuk5n2RjZN3+tSJFJuFCjrorFM=";
|
||||
};
|
||||
|
||||
patchPhase = let
|
||||
matchExecution = ''(\<(output_of|system|run)\([^"%]*("|%w\()|^[^"`]*`)'';
|
||||
in ''
|
||||
sed -r -i \
|
||||
-e '1s|^#!.*|#!${ruby}/bin/ruby|' \
|
||||
-e 's!${matchExecution}git\>!\1${git}/bin/git!' \
|
||||
-e 's!${matchExecution}darcs\>!\1${darcs}/bin/darcs!' \
|
||||
-e 's!${matchExecution}diff\>!\1${diffutils}/bin/diff!' \
|
||||
-e 's!\<egrep\>!${gnugrep}/bin/egrep!g' \
|
||||
-e 's!%w\(darcs init\)!%w(${darcs}/bin/darcs init)!' \
|
||||
darcs-to-git
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -vD darcs-to-git "$out/bin/darcs-to-git"
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkPhase = ''
|
||||
orig_dir="$(pwd)"
|
||||
darcs_repos="$(pwd)/darcs_test_repos"
|
||||
git_repos="$(pwd)/git_test_repos"
|
||||
test_home="$(pwd)/test_home"
|
||||
mkdir "$darcs_repos" "$git_repos" "$test_home"
|
||||
cd "$darcs_repos"
|
||||
${darcs}/bin/darcs init
|
||||
echo "this is a test file" > new_file1
|
||||
${darcs}/bin/darcs add new_file1
|
||||
HOME="$test_home" ${darcs}/bin/darcs record -a -m c1 -A none
|
||||
echo "testfile1" > new_file1
|
||||
echo "testfile2" > new_file2
|
||||
${darcs}/bin/darcs add new_file2
|
||||
HOME="$test_home" ${darcs}/bin/darcs record -a -m c2 -A none
|
||||
${darcs}/bin/darcs mv new_file2 only_one_file
|
||||
rm -f new_file1
|
||||
HOME="$test_home" ${darcs}/bin/darcs record -a -m c3 -A none
|
||||
cd "$git_repos"
|
||||
HOME="$test_home" PATH= "$orig_dir/darcs-to-git" "$darcs_repos"
|
||||
assertFileContents() {
|
||||
echo -n "File $1 contains '$2'..." >&2
|
||||
if [ "x$(cat "$1")" = "x$2" ]; then
|
||||
echo " passed." >&2
|
||||
return 0
|
||||
else
|
||||
echo " failed: '$(cat "$1")' != '$2'" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
echo "Checking if converted repository matches original repository:" >&2
|
||||
assertFileContents only_one_file testfile2
|
||||
${git}/bin/git reset --hard HEAD^
|
||||
assertFileContents new_file1 testfile1
|
||||
assertFileContents new_file2 testfile2
|
||||
${git}/bin/git reset --hard HEAD^
|
||||
assertFileContents new_file1 "this is a test file"
|
||||
echo "All checks passed." >&2
|
||||
cd "$orig_dir"
|
||||
rm -rf "$darcs_repos" "$git_repos" "$test_home"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Converts a Darcs repository into a Git repository";
|
||||
homepage = "http://www.sanityinc.com/articles/converting-darcs-repositories-to-git";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, installShellFiles
|
||||
, DiskArbitration
|
||||
, Foundation
|
||||
, libiconv
|
||||
, Security
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "delta";
|
||||
version = "0.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dandavison";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-5h4epV3RORZiynW1fkFLImqPunC3PZ/YzLiSrzescww=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-4dPTcrT8Gx3WfT0sauqnCSmcGE9LrgIqgHrY5l503ZA=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ DiskArbitration Foundation libiconv Security ];
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --bash --name delta.bash etc/completion/completion.bash
|
||||
installShellCompletion --zsh --name _delta etc/completion/completion.zsh
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/dandavison/delta";
|
||||
description = "A syntax-highlighting pager for git";
|
||||
changelog = "https://github.com/dandavison/delta/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ marsam zowoq SuperSandro2000 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{lib, stdenv, git, perl, ncurses, coreutils, fetchFromGitHub, makeWrapper, ...}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "diff-so-fancy";
|
||||
version = "1.4.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "so-fancy";
|
||||
repo = "diff-so-fancy";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-/xdBvq2u1s5/yzjwr3MLxpaD1CNktcPijXJTKW3Bc4c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
perl # needed for patchShebangs
|
||||
];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin $out/lib/diff-so-fancy
|
||||
|
||||
# diff-so-fancy executable searches for it's library relative to
|
||||
# itself, so we are copying executable to lib, and only symlink it
|
||||
# from bin/
|
||||
cp diff-so-fancy $out/lib/diff-so-fancy
|
||||
cp -r lib $out/lib/diff-so-fancy
|
||||
ln -s $out/lib/diff-so-fancy/diff-so-fancy $out/bin
|
||||
|
||||
# ncurses is needed for `tput`
|
||||
wrapProgram $out/lib/diff-so-fancy/diff-so-fancy \
|
||||
--prefix PATH : "${git}/share/git/contrib/diff-highlight" \
|
||||
--prefix PATH : "${git}/bin" \
|
||||
--prefix PATH : "${coreutils}/bin" \
|
||||
--prefix PATH : "${ncurses.out}/bin"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/so-fancy/diff-so-fancy";
|
||||
description = "Good-looking diffs filter for git";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
longDescription = ''
|
||||
diff-so-fancy builds on the good-lookin' output of git contrib's
|
||||
diff-highlight to upgrade your diffs' appearances.
|
||||
'';
|
||||
maintainers = with maintainers; [ fpletz globin ma27 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{lib, stdenv, fetchFromGitHub, git, mercurial, makeWrapper}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fast-export";
|
||||
version = "210917";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "frej";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0xg8r9rbqv7mriraqxdks2mgj7j4c9gap3kc05y1kxi3nniywyd3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [mercurial.python mercurial];
|
||||
|
||||
installPhase = ''
|
||||
binPath=$out/bin
|
||||
libexecPath=$out/libexec/${pname}
|
||||
sitepackagesPath=$out/${mercurial.python.sitePackages}
|
||||
mkdir -p $binPath $libexecPath $sitepackagesPath
|
||||
|
||||
# Patch shell scripts so they can execute the Python scripts
|
||||
sed -i "s|ROOT=.*|ROOT=$libexecPath|" *.sh
|
||||
|
||||
mv hg-fast-export.sh hg-reset.sh $binPath
|
||||
mv hg-fast-export.py hg-reset.py $libexecPath
|
||||
mv hg2git.py pluginloader plugins $sitepackagesPath
|
||||
|
||||
for script in $out/bin/*.sh; do
|
||||
wrapProgram $script \
|
||||
--prefix PATH : "${git}/bin":"${mercurial.python}/bin":$libexec \
|
||||
--prefix PYTHONPATH : "${mercurial}/${mercurial.python.sitePackages}":$sitepackagesPath
|
||||
done
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
# deliberately not adding git or hg into installCheckInputs - package should
|
||||
# be able to work without them in runtime env
|
||||
installCheckPhase = ''
|
||||
mkdir repo-hg
|
||||
pushd repo-hg
|
||||
${mercurial}/bin/hg init
|
||||
echo foo > bar
|
||||
${mercurial}/bin/hg add bar
|
||||
${mercurial}/bin/hg commit --message "baz"
|
||||
popd
|
||||
|
||||
mkdir repo-git
|
||||
pushd repo-git
|
||||
${git}/bin/git init
|
||||
${git}/bin/git config core.ignoreCase false # for darwin
|
||||
$out/bin/hg-fast-export.sh -r ../repo-hg/ --hg-hash
|
||||
for s in "foo" "bar" "baz" ; do
|
||||
(${git}/bin/git show | grep $s > /dev/null) && echo $s found
|
||||
done
|
||||
popd
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Import mercurial into git";
|
||||
homepage = "https://repo.or.cz/w/fast-export.git";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.koral ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
{ fetchFromGitHub
|
||||
, gitMinimal
|
||||
, gfold
|
||||
, lib
|
||||
, libiconv
|
||||
, makeWrapper
|
||||
, rustPlatform
|
||||
, Security
|
||||
, stdenv
|
||||
, testVersion
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "gfold";
|
||||
version = "4.0.0";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nickgerace";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1yh5173qhi9bd41zss9k21nm0xnr2sa918kvlyr5xvzhq47rrwz5";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-o2fMIlj+veTmhfqi7BVpxr3520SOwWLmVS2UU83EVjo=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
|
||||
|
||||
passthru.tests.version = testVersion {
|
||||
package = gfold;
|
||||
command = "gfold --version";
|
||||
inherit version;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description =
|
||||
"CLI tool to help keep track of your Git repositories, written in Rust";
|
||||
homepage = "https://github.com/nickgerace/gfold";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ maintainers.shanesveller ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, installShellFiles
|
||||
, makeWrapper
|
||||
, bash
|
||||
, coreutils
|
||||
, git
|
||||
, pandoc
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.3.0";
|
||||
commit = "5bfe79b3632f15c442e8dc51ec206ab76354487f";
|
||||
in buildGoModule {
|
||||
pname = "gg-scm";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gg-scm";
|
||||
repo = "gg";
|
||||
rev = "v${version}";
|
||||
sha256 = "e628aeddb94d2470de860df09ef65499f8c5493fb336bf3df8502842ee02487f";
|
||||
};
|
||||
postPatch = ''
|
||||
substituteInPlace cmd/gg/editor_unix.go \
|
||||
--replace /bin/sh ${bash}/bin/sh
|
||||
'';
|
||||
subPackages = [ "cmd/gg" ];
|
||||
ldflags = [
|
||||
"-s" "-w"
|
||||
"-X" "main.versionInfo=${version}"
|
||||
"-X" "main.buildCommit=${commit}"
|
||||
];
|
||||
|
||||
vendorSha256 = "214dc073dad7b323ea449acf24c5b578d573432eeaa1506cf5761a2d7f5ce405";
|
||||
|
||||
nativeBuildInputs = [ pandoc installShellFiles makeWrapper ];
|
||||
checkInputs = [ bash coreutils git ];
|
||||
buildInputs = [ bash git ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/gg --suffix PATH : ${git}/bin
|
||||
pandoc --standalone --to man misc/gg.1.md -o misc/gg.1
|
||||
installManPage misc/gg.1
|
||||
installShellCompletion --cmd gg \
|
||||
--bash misc/gg.bash \
|
||||
--zsh misc/_gg.zsh
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
mainProgram = "gg";
|
||||
description = "Git with less typing";
|
||||
longDescription = ''
|
||||
gg is an alternative command-line interface for Git heavily inspired by Mercurial.
|
||||
It's designed for less typing in common workflows,
|
||||
making Git easier to use for both novices and advanced users alike.
|
||||
'';
|
||||
homepage = "https://gg-scm.io/";
|
||||
changelog = "https://github.com/gg-scm/gg/blob/v${version}/CHANGELOG.md";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ zombiezen ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
{ lib, fetchFromGitHub, buildGoModule, installShellFiles }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gh";
|
||||
version = "2.11.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cli";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-b00bP0usTpYr5EShyckmZ+a1Mw48payU/KllSck47fI=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-soNQXtpQ217scP606UA05+r9WIrUAMOCDBsfLKrVD+Q=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
# upstream unsets these to handle cross but it breaks our build
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace "GOOS= GOARCH= GOARM= GOFLAGS= CGO_ENABLED=" ""
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
make GO_LDFLAGS="-s -w" GH_VERSION=${version} bin/gh manpages
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm755 bin/gh -t $out/bin
|
||||
installManPage share/man/*/*.[1-9]
|
||||
|
||||
for shell in bash fish zsh; do
|
||||
$out/bin/gh completion -s $shell > gh.$shell
|
||||
installShellCompletion gh.$shell
|
||||
done
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# fails with `unable to find git executable in PATH`
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "GitHub CLI tool";
|
||||
homepage = "https://cli.github.com/";
|
||||
changelog = "https://github.com/cli/cli/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ zowoq ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ghorg";
|
||||
version = "1.7.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gabrie30";
|
||||
repo = "ghorg";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-EQCu+2qMKu+e6G5iXAQn5cz0MZqHrF2wnKNO8Fkpp/Y=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
vendorSha256 = null;
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
ldflags = [ "-s" "-w" "-X main.version=${version}" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Quickly clone an entire org/users repositories into one directory";
|
||||
longDescription = ''
|
||||
ghorg allows you to quickly clone all of an orgs, or users repos into a
|
||||
single directory. This can be useful in many situations including
|
||||
- Searching an orgs/users codebase with ack, silver searcher, grep etc..
|
||||
- Bash scripting
|
||||
- Creating backups
|
||||
- Onboarding
|
||||
- Performing Audits
|
||||
'';
|
||||
homepage = "https://github.com/gabrie30/ghorg";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ vidbina ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ghq";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "x-motemen";
|
||||
repo = "ghq";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-tGublfC6EeY3T/45lxmsm5zsmlgq/guS64OutAWy6AY=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-ZUnnvZERWXnOs4hybw8JDlGdM7QFaMfs6o3SYy0UwTM=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
ldflags = [
|
||||
"-X=main.Version=${version}"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -m 444 -D ${src}/misc/zsh/_ghq $out/share/zsh/site-functions/_ghq
|
||||
install -m 444 -D ${src}/misc/bash/_ghq $out/share/bash-completion/completions/_ghq
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Remote repository management made easy";
|
||||
homepage = "https://github.com/x-motemen/ghq";
|
||||
maintainers = with lib.maintainers; [ sigma ];
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ghr";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tcnksm";
|
||||
repo = "ghr";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-pF1TPvQLPa5BbXZ9rRCq7xWofXCBRa9CDgNxX/kaTMo=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-+e9Q4Pw9pJyOXVz85KhOSuybj1PBcJi51fGR3a2Gixk=";
|
||||
|
||||
# Tests require a Github API token, and networking
|
||||
doCheck = false;
|
||||
doInstallCheck = true;
|
||||
|
||||
installCheckPhase = ''
|
||||
$out/bin/ghr --version
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/tcnksm/ghr";
|
||||
description = "Upload multiple artifacts to GitHub Release in parallel";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.ivar ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-absorb";
|
||||
version = "0.6.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tummychow";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "sha256-qhUw1wjXn1tyiH175+BadcoKoZ0wHxpMTKDIKOcJjQ0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Security ];
|
||||
|
||||
cargoSha256 = "sha256-Wh2kA12CggbgdofWJwPAy+587qfMUPSy9nQmO11+keY=";
|
||||
|
||||
postInstall = ''
|
||||
installManPage Documentation/git-absorb.1
|
||||
installShellCompletion --cmd git-absorb \
|
||||
--bash <($out/bin/git-absorb --gen-completions bash) \
|
||||
--fish <($out/bin/git-absorb --gen-completions fish) \
|
||||
--zsh <($out/bin/git-absorb --gen-completions zsh)
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/tummychow/git-absorb";
|
||||
description = "git commit --fixup, but automatic";
|
||||
license = [ licenses.bsd3 ];
|
||||
maintainers = [ maintainers.marsam ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, buildPythonApplication, fetchFromGitHub, pyqt5, qt5, git-annex-adapter }:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "git-annex-metadata-gui";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alpernebbi";
|
||||
repo = "git-annex-metadata-gui";
|
||||
rev = "v${version}";
|
||||
sha256 = "03kch67k0q9lcs817906g864wwabkn208aiqvbiyqp1qbg99skam";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace setup.py --replace "'PyQt5', " ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
|
||||
|
||||
preFixup = ''
|
||||
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [ pyqt5 git-annex-adapter ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/alpernebbi/git-annex-metadata-gui";
|
||||
description = "Graphical interface for git-annex metadata commands";
|
||||
maintainers = with maintainers; [ dotlambda ];
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{ lib
|
||||
, buildPythonApplication
|
||||
, fetchPypi
|
||||
, dropbox
|
||||
, annexremote
|
||||
, humanfriendly
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "git-annex-remote-dbx";
|
||||
version = "1.0.3";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "5b6f8025ed1e9877f06882ddbd81f701a8e094647ab97595e2afc09016835a7c";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ dropbox annexremote humanfriendly ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A git-annex special remote for Dropbox";
|
||||
homepage = "https://pypi.org/project/git-annex-remote-dbx/";
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
{ lib
|
||||
, buildPythonApplication
|
||||
, fetchPypi
|
||||
, annexremote
|
||||
, drivelib
|
||||
, GitPython
|
||||
, tenacity
|
||||
, humanfriendly
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "git-annex-remote-googledrive";
|
||||
version = "1.3.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0rwjcdvfgzdlfgrn1rrqwwwiqqzyh114qddrbfwd46ld5spry6r1";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ annexremote drivelib GitPython tenacity humanfriendly ];
|
||||
|
||||
# while git-annex does come with a testremote command that *could* be used,
|
||||
# testing this special remote obviously depends on authenticating with google
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "git_annex_remote_googledrive" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A git-annex special remote for Google Drive";
|
||||
homepage = "https://pypi.org/project/git-annex-remote-googledrive/";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ gravndal ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, stdenv, fetchFromGitHub, rclone, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-annex-remote-rclone";
|
||||
version = "0.6";
|
||||
rev = "v${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit rev;
|
||||
owner = "DanielDent";
|
||||
repo = "git-annex-remote-rclone";
|
||||
sha256 = "0j0hlxji8d974fq7zd4xc02n0jpi31ylhxc7z4zp8iiwad5mkpxp";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp git-annex-remote-rclone $out/bin
|
||||
wrapProgram "$out/bin/git-annex-remote-rclone" \
|
||||
--prefix PATH ":" "${lib.makeBinPath [ rclone ]}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/DanielDent/git-annex-remote-rclone";
|
||||
description = "Use rclone supported cloud storage providers with git-annex";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.montag451 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchgit, autoconf, automake, libtool, gmp }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-annex-utils";
|
||||
version = "0.04-3-g531bb33";
|
||||
src = fetchgit {
|
||||
url = "http://git.mysteryvortex.com/repositories/git-annex-utils.git";
|
||||
rev = "531bb33";
|
||||
sha256 = "1sv7s2ykc840cjwbfn7ayy743643x9i1lvk4cd55w9l052xvzj65";
|
||||
};
|
||||
nativeBuildInputs = [ autoconf automake ];
|
||||
buildInputs = [ libtool gmp ];
|
||||
preConfigure = "./autogen.sh";
|
||||
|
||||
meta = {
|
||||
description = "gadu, a du like utility for annexed files";
|
||||
longDescription = ''
|
||||
This is a set of utilities that are handy to use with git-annex repositories.
|
||||
Currently there is only one utility gadu, a du like utility for annexed files.
|
||||
'';
|
||||
homepage = "http://git-annex.mysteryvortex.com/git-annex-utils.html";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ woffs ];
|
||||
mainProgram = "gadu";
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{ lib, buildGoPackage, fetchFromGitHub }:
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "git-appraise-unstable";
|
||||
version = "2018-02-26";
|
||||
rev = "2414523905939525559e4b2498c5597f86193b61";
|
||||
|
||||
goPackagePath = "github.com/google/git-appraise";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit rev;
|
||||
owner = "google";
|
||||
repo = "git-appraise";
|
||||
sha256 = "04xkp1jpas1dfms6i9j09bgkydih0q10nhwn75w9ds8hi2qaa3sa";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Distributed code review system for Git repos";
|
||||
homepage = "https://github.com/google/git-appraise";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ lib.maintainers.vdemeester ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{ python3Packages, lib, git, graphviz }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "git-big-picture";
|
||||
version = "1.1.1";
|
||||
format = "wheel";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit format version;
|
||||
pname = "git_big_picture"; # underscores needed for working download URL
|
||||
python = "py3"; # i.e. no Python 2.7
|
||||
sha256 = "a20a480057ced1585c4c38497d27a5012f12dd29697313f0bb8fa6ddbb5c17d8";
|
||||
};
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/git-big-picture \
|
||||
--prefix PATH ":" ${ lib.makeBinPath [ git graphviz ] }
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Tool for visualization of Git repositories";
|
||||
homepage = "https://github.com/git-big-picture/git-big-picture";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = [ lib.maintainers.nthorne ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{ lib
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, git
|
||||
, libiconv
|
||||
, ncurses
|
||||
, openssl
|
||||
, pkg-config
|
||||
, rustPlatform
|
||||
, sqlite
|
||||
, stdenv
|
||||
, Security
|
||||
, SystemConfiguration
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-branchless";
|
||||
version = "0.3.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "arxanas";
|
||||
repo = "git-branchless";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-1bUHltONLfJumkxPnzGJFMMyS02LVqjpDL+KgiewyoQ=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-3+ULHqtKAhf4AdoLPK/3IqnfOcskoh6ctlQnY1oTHJ8=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
ncurses
|
||||
openssl
|
||||
sqlite
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
Security
|
||||
SystemConfiguration
|
||||
libiconv
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export TEST_GIT=${git}/bin/git
|
||||
export TEST_GIT_EXEC_PATH=$(${git}/bin/git --exec-path)
|
||||
'';
|
||||
# FIXME: these tests deadlock when run in the Nix sandbox
|
||||
checkFlags = [
|
||||
"--skip=test_checkout_pty"
|
||||
"--skip=test_next_ambiguous_interactive"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A suite of tools to help you visualize, navigate, manipulate, and repair your commit history";
|
||||
homepage = "https://github.com/arxanas/git-branchless";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ msfjarvis nh2 hmenke ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "git-bug";
|
||||
version = "0.7.2"; # the `rev` below pins the version of the source to get
|
||||
rev = "cc4a93c8ce931b1390c61035b888ad17110b7bd6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit rev;
|
||||
owner = "MichaelMure";
|
||||
repo = "git-bug";
|
||||
sha256 = "0r6wh0y1fj3d3fbbrzq5n9k6z94xvwqww3xfbslkgyrin5bmziiq";
|
||||
};
|
||||
|
||||
vendorSha256 = "15hhsrwwjc4krfc2d0r15lys3vr9rb9xk62pan4jr9ycbv0dny90";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
ldflags = [
|
||||
"-X github.com/MichaelMure/git-bug/commands.GitCommit=${rev}"
|
||||
"-X github.com/MichaelMure/git-bug/commands.GitLastTag=${version}"
|
||||
"-X github.com/MichaelMure/git-bug/commands.GitExactTag=${version}"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -D -m 0644 misc/bash_completion/git-bug "$out/share/bash-completion/completions/git-bug"
|
||||
install -D -m 0644 misc/zsh_completion/git-bug "$out/share/zsh/site-functions/git-bug"
|
||||
install -D -m 0644 -t "$out/share/man/man1" doc/man/*
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Distributed bug tracker embedded in Git";
|
||||
homepage = "https://github.com/MichaelMure/git-bug";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ royneary ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, fetchFromGitHub, buildGoModule }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "git-chglog";
|
||||
version = "0.15.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "git-chglog";
|
||||
repo = "git-chglog";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-UlhJ004ceXpdB/9296cL2sbBYsjV8D+3YS1vmFgnko8=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-FLFPcmkrhZ+/UX1xpexsDv3cgC/Ocj4qTFJOX+rmdyQ=";
|
||||
|
||||
ldflags = [ "-s" "-w" "-X=main.Version=v${version}" ];
|
||||
|
||||
subPackages = [ "cmd/git-chglog" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "CHANGELOG generator implemented in Go (Golang)";
|
||||
homepage = "https://github.com/git-chglog/git-chglog";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ldenefle ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
{ stdenv, lib, fetchFromGitHub, autoconf, makeWrapper
|
||||
, curl, libiconv, mercurial, zlib
|
||||
}:
|
||||
|
||||
let
|
||||
python3 = mercurial.python;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-cinnabar";
|
||||
version = "0.5.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "glandium";
|
||||
repo = "git-cinnabar";
|
||||
rev = version;
|
||||
sha256 = "04dsjlsw98avrckldx7rc70b2zsbajzkyqqph4c7d9xd5djh3yaj";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoconf makeWrapper ];
|
||||
buildInputs = [ curl zlib ] ++ lib.optional stdenv.isDarwin libiconv;
|
||||
|
||||
# Ignore submodule status failing due to no git in environment.
|
||||
makeFlags = [ "SUBMODULE_STATUS=yes" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin $out/libexec
|
||||
install git-cinnabar-helper $out/bin
|
||||
install git-cinnabar git-remote-hg $out/libexec
|
||||
cp -r cinnabar mercurial $out/libexec
|
||||
|
||||
for pythonBin in git-cinnabar git-remote-hg; do
|
||||
makeWrapper $out/libexec/$pythonBin $out/bin/$pythonBin \
|
||||
--prefix PATH : ${lib.getBin python3}/bin \
|
||||
--prefix GIT_CINNABAR_EXPERIMENTS , python3 \
|
||||
--set PYTHONPATH ${mercurial}/${python3.sitePackages}
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/glandium/git-cinnabar";
|
||||
description = "git remote helper to interact with mercurial repositories";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ qyliss ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-cliff";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "orhun";
|
||||
repo = "git-cliff";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-wVHL2+didmiN7UlEeIuSr+8LhkFKCOD3of4rKVg1i1o=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-5jhloUnaGXXDu2LCO86SMJo8ETIxLAivv3hx9gEqtJ4=";
|
||||
|
||||
# attempts to run the program on .git in src which is not deterministic
|
||||
doCheck = false;
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Security ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A highly customizable Changelog Generator that follows Conventional Commit specifications";
|
||||
homepage = "https://github.com/orhun/git-cliff";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ siraben ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, rustPlatform, fetchFromGitHub }:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-codeowners";
|
||||
version = "0.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "softprops";
|
||||
repo = "git-codeowners";
|
||||
rev = "v${version}";
|
||||
sha256 = "0bzq4ridzb4l1zqrj1r0vlzkjpgfaqwky5jf49cwjhz4ybwrfpkq";
|
||||
};
|
||||
|
||||
cargoSha256 = "00wi64v2zn8rp8fjwbdwyvl3pva5sn9xclaawp2m222dqnlszb2d";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/softprops/git-codeowners";
|
||||
description = "a git extension to work with CODEOWNERS files";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ zimbatm ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, git }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "git-codereview";
|
||||
version = "1.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "golang";
|
||||
repo = "review";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Hyo2UWGlxxeSz3E73DeA0VoOnBJ1VedvpshnATJGbFo=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
checkInputs = [ git ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Manage the code review process for Git changes using a Gerrit server";
|
||||
homepage = "https://golang.org/x/review/git-codereview";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.edef ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
{ lib, fetchFromGitHub, python3Packages, gettext, git, qt5 }:
|
||||
|
||||
let
|
||||
inherit (python3Packages) buildPythonApplication pyqt5 sip_4 pyinotify;
|
||||
|
||||
in buildPythonApplication rec {
|
||||
pname = "git-cola";
|
||||
version = "3.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "git-cola";
|
||||
repo = "git-cola";
|
||||
rev = "v${version}";
|
||||
sha256 = "1f8jpfa916nszj431cmp41bxj2m76k2n8qnscqgxrc0k3pnnp3wc";
|
||||
};
|
||||
|
||||
buildInputs = [ git gettext ];
|
||||
propagatedBuildInputs = [ pyqt5 sip_4 pyinotify ];
|
||||
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
preFixup = ''
|
||||
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/git-cola/git-cola";
|
||||
description = "A sleek and powerful Git GUI";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.bobvanderlinden ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "git-credential-1password";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "develerik";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-WMEUa0mSxmeFXQBejwxtlhWuuLKguugavRaBUVpYA3g=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-eUjaSpmQpSOvSBW+7ajXiEDepkyvHsIiEY0RGpfnao0=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A git credential helper for 1Password";
|
||||
homepage = "https://github.com/develerik/git-credential-1password";
|
||||
changelog = "https://github.com/develerik/git-credential-1password/releases/tag/v${version}";
|
||||
license = licenses.isc;
|
||||
maintainers = [ maintainers.ivankovnatsky ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
{ fetchFromGitHub
|
||||
, git
|
||||
, gnupg
|
||||
, makeWrapper
|
||||
, openssl
|
||||
, lib
|
||||
, stdenv
|
||||
, libxslt
|
||||
, docbook_xsl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-crypt";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AGWA";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-GcGCX6hoKL+sNLAeGEzZpaM+cdFjcNlwYExfOFEPi0I=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [ libxslt makeWrapper ];
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace commands.cpp \
|
||||
--replace '(escape_shell_arg(our_exe_path()))' '= "git-crypt"'
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
"ENABLE_MAN=yes"
|
||||
"DOCBOOK_XSL=${docbook_xsl}/share/xml/docbook-xsl-nons/manpages/docbook.xsl"
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/git-crypt \
|
||||
--suffix PATH : ${lib.makeBinPath [ git gnupg ]}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.agwa.name/projects/git-crypt";
|
||||
description = "Transparent file encryption in git";
|
||||
longDescription = ''
|
||||
git-crypt enables transparent encryption and decryption of files in a git
|
||||
repository. Files which you choose to protect are encrypted when
|
||||
committed, and decrypted when checked out. git-crypt lets you freely
|
||||
share a repository containing a mix of public and private
|
||||
content. git-crypt gracefully degrades, so developers without the secret
|
||||
key can still clone and commit to a repository with encrypted files. This
|
||||
lets you store your secret material (such as keys or passwords) in the
|
||||
same repository as your code, without requiring you to lock down your
|
||||
entire repository.
|
||||
'';
|
||||
downloadPage = "https://github.com/AGWA/git-crypt/releases";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ dochang SuperSandro2000 ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, python3Packages, fetchFromGitHub, git }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "git-delete-merged-branches";
|
||||
version = "6.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hartwork";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-swAc8ObZY78nVQyjTrVG81xBqTYnWHVDFpiUApbowqU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
colorama
|
||||
prompt-toolkit
|
||||
];
|
||||
|
||||
checkInputs = [ git ]
|
||||
++ (with python3Packages; [ parameterized ]);
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command-line tool to delete merged Git branches";
|
||||
homepage = "https://pypi.org/project/git-delete-merged-branches/";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
{ lib, stdenv, fetchFromGitHub, unixtools, which }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-extras";
|
||||
version = "6.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tj";
|
||||
repo = "git-extras";
|
||||
rev = version;
|
||||
sha256 = "sha256-Cn7IXMzgg0QIsNIHz+X14Gkmop0UbsSBlGlGkmg71ek=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs check_dependencies.sh
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
unixtools.column
|
||||
which
|
||||
];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
"SYSCONFDIR=${placeholder "out"}/share"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
# bash completion is already handled by make install
|
||||
install -D etc/git-extras-completion.zsh $out/share/zsh/site-functions/_git_extras
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/tj/git-extras";
|
||||
description = "GIT utilities -- repo summary, repl, changelog population, author commit percentages and more";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ spwhitt cko SuperSandro2000 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
source 'https://rubygems.org'
|
||||
|
||||
# Specify your gem's dependencies in git_fame.gemspec
|
||||
gem "git_fame"
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
git_fame (2.5.2)
|
||||
hirb (~> 0.7.3)
|
||||
memoist (~> 0.14.0)
|
||||
method_profiler (~> 2.0.1)
|
||||
progressbar (~> 0.21.0)
|
||||
scrub_rb (~> 1.0.1)
|
||||
trollop (~> 2.1.2)
|
||||
hirb (0.7.3)
|
||||
memoist (0.14.0)
|
||||
method_profiler (2.0.1)
|
||||
hirb (>= 0.6.0)
|
||||
progressbar (0.21.0)
|
||||
scrub_rb (1.0.1)
|
||||
trollop (2.1.2)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
git_fame
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
|
||||
|
||||
bundlerEnv {
|
||||
inherit ruby;
|
||||
|
||||
pname = "git_fame";
|
||||
|
||||
gemdir = ./.;
|
||||
|
||||
passthru.updateScript = bundlerUpdateScript "git-fame";
|
||||
|
||||
meta = with lib; {
|
||||
description = ''
|
||||
A command-line tool that helps you summarize and pretty-print collaborators based on contributions
|
||||
'';
|
||||
homepage = "http://oleander.io/git-fame-rb";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ expipiplus1 nicknovitski ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
git_fame = {
|
||||
dependencies = ["hirb" "memoist" "method_profiler" "progressbar" "scrub_rb" "trollop"];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "02k5ls5zyif8skdbnym6zw9y76whlnksw2m94jsh2n1ygk98izdd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.5.2";
|
||||
};
|
||||
hirb = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0mzch3c2lvmf8gskgzlx6j53d10j42ir6ik2dkrl27sblhy76cji";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.7.3";
|
||||
};
|
||||
memoist = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "03d3h6kp16bf0crqg1cxdgp1d2iyzn53d3phbmjh4pjybqls0gcm";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.14.0";
|
||||
};
|
||||
method_profiler = {
|
||||
dependencies = ["hirb"];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1ax04qrrv7fqp5ayxaxhn72660pybdkpkvmgiwbg7bs7x5ijjzd8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.1";
|
||||
};
|
||||
progressbar = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "17haw9c6c9q6imsn83pii32jnihpg76jgd09x7y4hjqq45n3qcdh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.21.0";
|
||||
};
|
||||
scrub_rb = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0dwg33w83w17aiij9kcbi7irj7lh045nh9prjgkzjya3f1j60d3x";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.1";
|
||||
};
|
||||
trollop = {
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0415y63df86sqj43c0l82and65ia5h64if7n0znkbrmi6y0jwhl8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.2";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitea
|
||||
, rustPlatform
|
||||
, libiconv
|
||||
, Security
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-gone";
|
||||
version = "0.3.8";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "flausch";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-hKbq2rJwEZI3391RsZXsQSjjp7rSqglUckRDYAu42KE=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-gBQ4V8Bwx6Di8aVnOYwx0UZZIIOFxZAXT7Tl1Yli0Fk=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
|
||||
|
||||
postInstall = ''
|
||||
installManPage git-gone.1
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Cleanup stale Git branches of merge requests";
|
||||
homepage = "https://codeberg.org/flausch/git-gone";
|
||||
changelog = "https://codeberg.org/flausch/git-gone/raw/tag/v${version}/CHANGELOG.md";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ maintainers.marsam ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
{ lib, stdenv, fetchFromGitHub, gitMinimal, docutils }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-hub";
|
||||
version = "2.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sociomantic-tsunami";
|
||||
repo = "git-hub";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-fb/WDmBx1Vayu4fLeG+D1nmHJJawgIAAXcQsABsenBo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gitMinimal # Used during build to generate Bash completion.
|
||||
docutils
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
installFlags = [ "prefix=$(out)" "sysconfdir=$(out)/etc" ];
|
||||
|
||||
postInstall = ''
|
||||
# Remove inert ftdetect vim plugin and a README that's a man page subset:
|
||||
rm -r $out/share/{doc,vim}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
inherit (src.meta) homepage;
|
||||
description = "Git command line interface to GitHub";
|
||||
longDescription = ''
|
||||
A simple command line interface to GitHub, enabling most useful GitHub
|
||||
tasks (like creating and listing pull request or issues) to be accessed
|
||||
directly through the Git command line.
|
||||
'';
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
{ lib, stdenv, fetchFromGitHub, installShellFiles, rustPlatform, pkg-config, openssl, darwin }:
|
||||
|
||||
with rustPlatform;
|
||||
|
||||
buildRustPackage rec {
|
||||
pname = "git-ignore";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sondr3";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Bfr+4zDi6QqirlqccW1jU95eb4q82ZFG9LtT2mCPYLc=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-ehEUI4M2IxqS6QhyqOncwP+w6IGbIlSFNIP/FEVH/JI=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config installShellFiles ];
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optionals stdenv.isDarwin [
|
||||
darwin.apple_sdk.frameworks.Security
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
installManPage assets/git-ignore.1
|
||||
# There's also .elv and .ps1 completion files but I don't know where to install those
|
||||
installShellCompletion assets/git-ignore.{bash,fish} --zsh assets/_git-ignore
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Quickly and easily fetch .gitignore templates from gitignore.io";
|
||||
homepage = "https://github.com/sondr3/git-ignore";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ maintainers.sondr3 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, buildPythonApplication, fetchPypi, installShellFiles }:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "git-imerge";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "df5818f40164b916eb089a004a47e5b8febae2b4471a827e3aaa4ebec3831a3f";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --bash completions/git-imerge
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/mhagger/git-imerge";
|
||||
description = "Perform a merge between two branches incrementally";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.spwhitt ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-interactive-rebase-tool";
|
||||
version = "2.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MitMaro";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-++KTMzTt84dowoZP+Bc9E/jUS21YN5ybKrlpQUKCir0=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-OUaP/nDs589FYaGYcleRMTQNu3/q/2wBjHSv2q8OyjA=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
|
||||
|
||||
checkFlags = [
|
||||
"--skip=external_editor::tests::edit_success"
|
||||
"--skip=external_editor::tests::editor_non_zero_exit"
|
||||
"--skip=external_editor::tests::empty_edit_abort_rebase"
|
||||
"--skip=external_editor::tests::empty_edit_error"
|
||||
"--skip=external_editor::tests::empty_edit_noop"
|
||||
"--skip=external_editor::tests::empty_edit_re_edit_rebase_file"
|
||||
"--skip=external_editor::tests::empty_edit_undo_and_edit"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/MitMaro/git-interactive-rebase-tool";
|
||||
description = "Native cross platform full feature terminal based sequence editor for git interactive rebase";
|
||||
changelog = "https://github.com/MitMaro/git-interactive-rebase-tool/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ masaeedu SuperSandro2000 zowoq ];
|
||||
mainProgram = "interactive-rebase-tool";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
{ lib
|
||||
, buildPythonApplication
|
||||
, pytest-mock
|
||||
, pytestCheckHook
|
||||
, fetchFromGitHub
|
||||
, installShellFiles
|
||||
, git
|
||||
, nix-update-script
|
||||
, testers
|
||||
, git-machete
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "git-machete";
|
||||
version = "3.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "virtuslab";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-jZkc9YA4kE/Gr4/FRzgd0VvEjSrw5rk7DB5qH8Z5o6c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
checkInputs = [ git pytest-mock pytestCheckHook ];
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --bash --name git-machete completion/git-machete.completion.bash
|
||||
installShellCompletion --zsh --name _git-machete completion/git-machete.completion.zsh
|
||||
installShellCompletion --fish completion/git-machete.fish
|
||||
'';
|
||||
|
||||
postInstallCheck = ''
|
||||
test "$($out/bin/git-machete version)" = "git-machete version ${version}"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = pname;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/VirtusLab/git-machete";
|
||||
description = "Git repository organizer and rebase/merge workflow automation tool";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ blitz ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
{ lib, stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-my";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "davidosomething";
|
||||
repo = "git-my";
|
||||
rev = version;
|
||||
sha256 = "0jji5zw25jygj7g4f6f3k0p0s9g37r8iad8pa0s67cxbq2v4sc0v";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 -t "$out"/bin ./git-my
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description =
|
||||
"List remote branches if they're merged and/or available locally";
|
||||
homepage = "https://github.com/davidosomething/git-my";
|
||||
license = licenses.free;
|
||||
maintainers = with maintainers; [ bb010g ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
{ lib, stdenv, fetchFromGitHub, git, perl, makeWrapper }:
|
||||
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-octopus";
|
||||
version = "1.4";
|
||||
|
||||
installFlags = [ "prefix=$(out)" ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
# perl provides shasum
|
||||
postInstall = ''
|
||||
for f in $out/bin/*; do
|
||||
wrapProgram $f --prefix PATH : ${makeBinPath [ git perl ]}
|
||||
done
|
||||
'';
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lesfurets";
|
||||
repo = "git-octopus";
|
||||
rev = "v${version}";
|
||||
sha256 = "14p61xk7jankp6gc26xciag9fnvm7r9vcbhclcy23f4ghf4q4sj1";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/lesfurets/git-octopus";
|
||||
description = "The continuous merge workflow";
|
||||
license = licenses.lgpl3;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [maintainers.mic92];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
{ lib, stdenv, git, xdg-utils, gnugrep, fetchFromGitHub, installShellFiles, makeWrapper, pandoc }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-open";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "paulirish";
|
||||
repo = "git-open";
|
||||
rev = "v${version}";
|
||||
sha256 = "11n46bngvca5wbdbfcxzjhjbfdbad7sgf7h9gf956cb1q8swsdm0";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles makeWrapper pandoc ];
|
||||
|
||||
buildPhase = ''
|
||||
# marked-man is broken and severly outdated.
|
||||
# pandoc with some extra metadata is good enough and produces a by man readable file.
|
||||
cat <(echo echo '% git-open (1) Version ${version} | Git manual') git-open.1.md > tmp
|
||||
mv tmp git-open.1.md
|
||||
pandoc --standalone --to man git-open.1.md -o git-open.1
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp git-open $out/bin
|
||||
installManPage git-open.1
|
||||
wrapProgram $out/bin/git-open \
|
||||
--prefix PATH : "${lib.makeBinPath [ git xdg-utils gnugrep ]}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/paulirish/git-open";
|
||||
description = "Open the GitHub page or website for a repository in your browser";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ jlesquembre SuperSandro2000 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
{ lib, fetchFromGitHub
|
||||
, libiconv
|
||||
, openssl
|
||||
, pkg-config
|
||||
, rustPlatform
|
||||
, stdenv
|
||||
, Security
|
||||
, SystemConfiguration
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-quickfix";
|
||||
version = "0.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "siedentop";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-LDA94pH5Oodf80mEENoURh+MJSg122SVWFVo9i1TEQg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
|
||||
Security
|
||||
SystemConfiguration
|
||||
libiconv
|
||||
];
|
||||
|
||||
cargoSha256 = "sha256-QTPy0w45AawEU4fHf2FMGpL3YM+iTNnyiI4+mDJzWaE=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Quickfix allows you to commit changes in your git repository to a new branch without leaving the current branch";
|
||||
homepage = "https://github.com/siedentop/git-quickfix";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ msfjarvis ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
{lib, stdenv, fetchFromGitHub}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-radar";
|
||||
version = "0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "michaeldfallen";
|
||||
repo = "git-radar";
|
||||
rev = "v${version}";
|
||||
sha256 = "0c3zp8s4w7m4s71qgwk1jyfc8yzw34f2hi43x1w437ypgabwg81j";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp git-radar fetch.sh prompt.bash prompt.zsh radar-base.sh $out
|
||||
ln -s $out/git-radar $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/michaeldfallen/git-radar";
|
||||
license = licenses.mit;
|
||||
description = "A tool you can add to your prompt to provide at-a-glance information on your git repo";
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
maintainers = with maintainers; [ kamilchm ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
{lib, stdenv, git, less, fetchFromGitHub, makeWrapper
|
||||
# util-linuxMinimal is included because we need the column command
|
||||
, util-linux
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-recent";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "paulirish";
|
||||
repo = "git-recent";
|
||||
rev = "v${version}";
|
||||
sha256 = "1g8i6vpjnnfh7vc1269c91bap267w4bxdqqwnzb8x18vqgn2fx8i";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
buildPhase = null;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp git-recent $out/bin
|
||||
wrapProgram $out/bin/git-recent \
|
||||
--prefix PATH : "${lib.makeBinPath [ git less util-linux ]}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/paulirish/git-recent";
|
||||
description = "See your latest local git branches, formatted real fancy";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.jlesquembre ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, buildPythonApplication, fetchFromGitHub, isPy3k, botocore, pytest, mock
|
||||
, flake8, tox, awscli }:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "git-remote-codecommit";
|
||||
version = "1.15.1";
|
||||
disabled = !isPy3k;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1vvp7i8ghmq72v57f6smh441h35xnr5ar628q2mr40bzvcifwymw";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ botocore ];
|
||||
|
||||
checkInputs = [ pytest mock flake8 tox awscli ];
|
||||
|
||||
checkPhase = ''
|
||||
pytest
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description =
|
||||
"Git remote prefix to simplify pushing to and pulling from CodeCommit";
|
||||
maintainers = [ lib.maintainers.zaninime ];
|
||||
homepage = "https://github.com/awslabs/git-remote-codecommit";
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
{ lib, stdenv, fetchFromGitHub, docutils, makeWrapper
|
||||
, gnupg, curl, rsync, coreutils
|
||||
, gawk, gnused, gnugrep
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-remote-gcrypt";
|
||||
version = "1.4";
|
||||
rev = version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit rev;
|
||||
owner = "spwhitton";
|
||||
repo = "git-remote-gcrypt";
|
||||
sha256 = "sha256-uHgz8Aj5w8UOo/XbptCRKON1RAdDfFsLL9ZDEF1QrPQ=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
nativeBuildInputs = [ docutils makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
prefix="$out" ./install.sh
|
||||
wrapProgram "$out/bin/git-remote-gcrypt" \
|
||||
--prefix PATH ":" "${lib.makeBinPath [ gnupg curl rsync coreutils
|
||||
gawk gnused gnugrep ]}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://spwhitton.name/tech/code/git-remote-gcrypt";
|
||||
description = "A git remote helper for GPG-encrypted remotes";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ ellis montag451 ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, fetchFromGitHub, python3Packages
|
||||
, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "git-remote-hg";
|
||||
version = "1.0.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mnauw";
|
||||
repo = "git-remote-hg";
|
||||
rev = "v${version}";
|
||||
sha256 = "0b5lfbrcrvzpz380817md00lbgy5yl4y76vs3vm0bpm5wmr7c027";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt libxml2
|
||||
];
|
||||
propagatedBuildInputs = with python3Packages; [ mercurial ];
|
||||
|
||||
postInstall = ''
|
||||
make install-doc prefix=$out
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/mnauw/git-remote-hg";
|
||||
description = "Semi-official Mercurial bridge from Git project";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ qyliss ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, stdenv, fetchFromGitHub, makeWrapper, git, gnused }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-reparent";
|
||||
version = "unstable-2017-09-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MarkLodato";
|
||||
repo = "git-reparent";
|
||||
rev = "a99554a32524a86421659d0f61af2a6c784b7715";
|
||||
sha256 = "0v0yxydpw6r4awy0hb7sbnh520zsk86ibzh1xjf3983yhsvkfk5v";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
install -m755 -Dt $out/bin git-reparent
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/git-reparent --prefix PATH : "${lib.makeBinPath [ git gnused ]}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
inherit (src.meta) homepage;
|
||||
description = "Git command to recommit HEAD with a new set of parents";
|
||||
maintainers = [ maintainers.marsam ];
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
{ stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-secret";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "git-secret";
|
||||
owner = "sobolevn";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Mtuj+e/yCDr4XkmYkWUFJB3cqOT5yOMOq9P/QJV1S80=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
install -D git-secret $out/bin/git-secret
|
||||
|
||||
wrapProgram $out/bin/git-secret \
|
||||
--prefix PATH : "${lib.makeBinPath [ git gnupg gawk ]}"
|
||||
|
||||
mkdir $out/share
|
||||
cp -r man $out/share
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A bash-tool to store your private data inside a git repository";
|
||||
homepage = "https://git-secret.io";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.lo1tuma ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, stdenv, fetchFromGitHub, makeWrapper, git, coreutils }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-secrets";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = "git-secrets";
|
||||
rev = version;
|
||||
sha256 = "10lnxg0q855zi3d6804ivlrn6dc817kilzdh05mmz8a0ccvm2qc7";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
install -m755 -Dt $out/bin git-secrets
|
||||
install -m444 -Dt $out/share/man/man1 git-secrets.1
|
||||
|
||||
wrapProgram $out/bin/git-secrets \
|
||||
--prefix PATH : "${lib.makeBinPath [ git coreutils ]}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Prevents you from committing secrets and credentials into git repositories";
|
||||
homepage = "https://github.com/awslabs/git-secrets";
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, stdenv, fetchFromGitHub, makeWrapper, git }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-standup";
|
||||
version = "2.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kamranahmedse";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1xnn0jjha56v7l2vj45zzxncl6m5x2hq6nkffgc1bcikhp1pidn7";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 -t $out/bin git-standup
|
||||
|
||||
wrapProgram $out/bin/git-standup \
|
||||
--prefix PATH : "${lib.makeBinPath [ git ]}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Recall what you did on the last working day";
|
||||
homepage = "https://github.com/kamranahmedse/git-standup";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.marsam ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
{ stdenv, lib, fetchFromGitHub, ... }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "git-stree";
|
||||
version = "0.4.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tdd";
|
||||
repo = "git-stree";
|
||||
rev = "0.4.5";
|
||||
sha256 = "0y5h44n38w6rhy9m591dvibxpfggj3q950ll7y4h49bhpks4m0l9";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/share/bash-completion/completions
|
||||
install -m 0755 git-stree $out/bin/
|
||||
install -m 0644 git-stree-completion.bash $out/share/bash-completion/completions/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A better Git subtree helper command";
|
||||
homepage = "http://deliciousinsights.github.io/git-stree";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.benley ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
{ lib, stdenv, fetchFromGitHub, git, makeWrapper, which }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-subrepo";
|
||||
version = "0.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ingydotnet";
|
||||
repo = "git-subrepo";
|
||||
rev = version;
|
||||
sha256 = "0n10qnc8kyms6cv65k1n5xa9nnwpwbjn9h2cq47llxplawzqgrvp";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
which
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
git
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=${placeholder "out"}"
|
||||
"INSTALL_LIB=${placeholder "out"}/bin"
|
||||
"INSTALL_MAN=${placeholder "out"}/share/man/man1"
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Allow zsh completion to work even though we aren't installing from a git
|
||||
# clone. Also submitted upstream as
|
||||
# https://github.com/ingydotnet/git-subrepo/pull/420
|
||||
./zsh-completion.patch
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
ZSH_COMP_DIR="$out/share/zsh/vendor-completions"
|
||||
mkdir -p "$ZSH_COMP_DIR"
|
||||
cp share/zsh-completion/_git-subrepo "$ZSH_COMP_DIR/"
|
||||
|
||||
BASH_COMP_DIR="$out/share/bash-completion/completions"
|
||||
mkdir -p "$BASH_COMP_DIR"
|
||||
cp share/completion.bash "$BASH_COMP_DIR/git-subrepo"
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/git-subrepo \
|
||||
--prefix PATH : "${git}/bin"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/ingydotnet/git-subrepo";
|
||||
description = "Git submodule alternative";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix ++ platforms.darwin;
|
||||
maintainers = [ maintainers.ryantrinkle ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
diff --git a/pkg/bin/generate-completion.pl b/pkg/bin/generate-completion.pl
|
||||
index 85ae3b8..d3e423c 100644
|
||||
--- a/pkg/bin/generate-completion.pl
|
||||
+++ b/pkg/bin/generate-completion.pl
|
||||
@@ -82,11 +82,6 @@ sub generate_zsh {
|
||||
|
||||
# DO NOT EDIT. This file generated by pkg/bin/generate-completion.pl.
|
||||
|
||||
-if [[ -z $GIT_SUBREPO_ROOT ]]; then
|
||||
- echo 'GIT_SUBREPO_ROOT is null; has `/path/to/git-subrepo/.rc` been sourced?'
|
||||
- return 3
|
||||
-fi
|
||||
-
|
||||
_git-subrepo() {
|
||||
typeset -A opt_args
|
||||
local curcontext="$curcontext" state line context
|
||||
diff --git a/share/zsh-completion/_git-subrepo b/share/zsh-completion/_git-subrepo
|
||||
index fc82be2..a8069d9 100644
|
||||
--- a/share/zsh-completion/_git-subrepo
|
||||
+++ b/share/zsh-completion/_git-subrepo
|
||||
@@ -3,11 +3,6 @@
|
||||
|
||||
# DO NOT EDIT. This file generated by pkg/bin/generate-completion.pl.
|
||||
|
||||
-if [[ -z $GIT_SUBREPO_ROOT ]]; then
|
||||
- echo 'GIT_SUBREPO_ROOT is null; has `/path/to/git-subrepo/.rc` been sourced?'
|
||||
- return 3
|
||||
-fi
|
||||
-
|
||||
_git-subrepo() {
|
||||
typeset -A opt_args
|
||||
local curcontext="$curcontext" state line context
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, curl, libiconv, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-subset";
|
||||
version = "0.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jasonwhite";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "02z2r0kcd0nnn1zjslp6xxam5ddbhrmzn67qzxhlamsw0p9vvkbb";
|
||||
};
|
||||
|
||||
cargoSha256 = "0lc9m9prmhr4ipjh95cfczvlmpp9scryksvqd49h4acyr904n7ry";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ curl libiconv Security ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Super fast Git tree filtering";
|
||||
homepage = "https://github.com/jasonwhite/git-subset";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.marsam ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "git-subtrac";
|
||||
version = "0.04";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "apenwarr";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0p1n29k2a2rpznwxlwzkmx38ic6g041k9vx7msvick7cydn417fx";
|
||||
};
|
||||
|
||||
vendorSha256 = "0m64grnmhjvfsw7a56474s894sgd24rvcp5kamhzzyc4q556hqny";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Keep the content for your git submodules all in one place: the parent repo";
|
||||
homepage = "https://github.com/apenwarr/git-subtrac";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ maintainers.marsam ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{ lib, stdenv, fetchFromGitHub, coreutils, git, gnugrep, gnused, makeWrapper, inotify-tools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-sync";
|
||||
version = "unstable-2022-03-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "simonthum";
|
||||
repo = "git-sync";
|
||||
rev = "8466b77a38b3d5e8b4ed9e3cb1b635e475eeb415";
|
||||
sha256 = "sha256-8rCwpmHV6wgFCLzPJOKzwN5mG8uD5KIlGFwcgQD+SK4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -a git-* $out/bin/
|
||||
cp -a contrib/git-* $out/bin/
|
||||
'';
|
||||
|
||||
wrapperPath = with lib; makeBinPath [
|
||||
inotify-tools
|
||||
coreutils
|
||||
git
|
||||
gnugrep
|
||||
gnused
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
wrap_path="${wrapperPath}":$out/bin
|
||||
|
||||
wrapProgram $out/bin/git-sync \
|
||||
--prefix PATH : $wrap_path
|
||||
|
||||
wrapProgram $out/bin/git-sync-on-inotify \
|
||||
--prefix PATH : $wrap_path
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A script to automatically synchronize a git repository";
|
||||
homepage = "https://github.com/simonthum/git-sync";
|
||||
maintainers = with lib.maintainers; [ imalison ];
|
||||
license = lib.licenses.cc0;
|
||||
platforms = with lib.platforms; unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
|
||||
buildGoModule rec {
|
||||
pname = "git-team";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hekmekk";
|
||||
repo = "git-team";
|
||||
rev = "v${version}";
|
||||
sha256 = "0nl5j64b61jw4bkf29y51svjbndmqqrqx96yaip4vjzj2dx9ywm4";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-xJMWPDuqoNtCCUnKuUvwlYztyrej1uZttC0NsDvYnXI=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
go run main.go --generate-man-page > ${pname}.1
|
||||
installManPage ${pname}.1
|
||||
|
||||
# Currently only bash completions are provided
|
||||
installShellCompletion --cmd git-team --bash <($out/bin/git-team completion bash)
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command line interface for managing and enhancing git commit messages with co-authors";
|
||||
homepage = "https://github.com/hekmekk/git-team";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ lockejan ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, stdenv, fetchFromGitHub, makeWrapper, git }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-test";
|
||||
version = "1.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "spotify";
|
||||
repo = "git-test";
|
||||
rev = "v${version}";
|
||||
sha256 = "01h3f0andv1p7pwir3k6n01v92hgr5zbjadfwl144yjw9x37fm2f";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
install -m755 -Dt $out/bin git-test
|
||||
install -m444 -Dt $out/share/man/man1 git-test.1
|
||||
|
||||
wrapProgram $out/bin/git-test \
|
||||
--prefix PATH : "${lib.makeBinPath [ git ]}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Test your commits";
|
||||
homepage = "https://github.com/spotify/git-test";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ maintainers.marsam ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, libiconv, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-trim";
|
||||
version = "0.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "foriequal0";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1rb9dhj7b7mjrhsvm9vw5gzjfxj10idnzv488jkfdz7sfhd3fcvz";
|
||||
};
|
||||
|
||||
cargoSha256 = "1gy77c1cnm2qpgf0fr03alvxi3936x36c032865a6ch8bzns7k5v";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 -t $out/share/man/man1/ docs/git-trim.1
|
||||
'';
|
||||
|
||||
# fails with sandbox
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Automatically trims your branches whose tracking remote refs are merged or gone";
|
||||
homepage = "https://github.com/foriequal0/git-trim";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.marsam ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, fetchFromGitHub, rustPlatform }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-vanity-hash";
|
||||
version = "2020-02-26-unstable";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "prasmussen";
|
||||
repo = "git-vanity-hash";
|
||||
rev = "000004122124005af8d118a3f379bfc6ecc1e7c7";
|
||||
sha256 = "1wf342zawbphlzvji0yba0qg4f6v67h81nhxqcsir132jv397ma7";
|
||||
};
|
||||
|
||||
cargoSha256 = "1frdw9bs7y6ch5rrbsgvhrs0wxw4hbwm2n3crslp12w55m7k39fc";
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/doc/git-vanity-hash
|
||||
cp README.md $out/share/doc/git-vanity-hash
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/prasmussen/git-vanity-hash";
|
||||
description = "Tool for creating commit hashes with a specific prefix";
|
||||
license = [ licenses.mit ];
|
||||
maintainers = [ maintainers.kaction ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
{ lib, stdenv, fetchFromGitHub, writeShellScriptBin, skawarePackages
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.3.0";
|
||||
sha256 = "sha256-CFv9gZQHeEiZctJFyB6PJ1dVNkrQ7PlVtgZuteQQTJ0=";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "git-vendor";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "brettlangdon";
|
||||
repo = "git-vendor";
|
||||
rev = "v${version}";
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
outputs = [ "bin" "man" "doc" "out" ];
|
||||
|
||||
PREFIX = (placeholder "out");
|
||||
BINPREFIX = "${placeholder "bin"}/bin";
|
||||
MANPREFIX = "${placeholder "man"}/share/man/man1";
|
||||
|
||||
buildInputs = [
|
||||
# stubbing out a `git config` check that `make install` tries to do
|
||||
(writeShellScriptBin "git" "")
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
${skawarePackages.cleanPackaging.commonFileActions {
|
||||
docFiles = [
|
||||
"LICENSE"
|
||||
"README.md"
|
||||
];
|
||||
noiseFiles = [
|
||||
"bin/git-vendor"
|
||||
"Makefile"
|
||||
"etc/bash_completion.sh"
|
||||
"man"
|
||||
"install.sh"
|
||||
];
|
||||
}} $doc/share/doc/git-vendor
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
${skawarePackages.cleanPackaging.checkForRemainingFiles}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A git command for managing vendored dependencies";
|
||||
longDescription = ''
|
||||
git-vendor is a wrapper around git-subtree commands for checking out and updating vendored dependencies.
|
||||
|
||||
By default git-vendor conforms to the pattern used for vendoring golang dependencies:
|
||||
* Dependencies are stored under vendor/ directory in the repo.
|
||||
* Dependencies are stored under the fully qualified project path.
|
||||
e.g. https://github.com/brettlangdon/forge will be stored under vendor/github.com/brettlangdon/forge.
|
||||
'';
|
||||
homepage = "https://github.com/brettlangdon/git-vendor";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.Profpatsch ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
{ lib, stdenv, fetchFromGitHub, python3 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git-when-merged";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mhagger";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0sw98gmsnd4iki9fx455jga9m80bxvvfgys8i1r2fc7d5whc2qa6";
|
||||
};
|
||||
|
||||
buildInputs = [ python3 ];
|
||||
|
||||
installPhase = ''
|
||||
install -D --target-directory $out/bin/ bin/git-when-merged
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description =
|
||||
"Helps you figure out when and why a commit was merged into a branch";
|
||||
longDescription = ''
|
||||
If you use standard Git workflows, then you create a feature
|
||||
branch for each feature that you are working on. When the feature
|
||||
is complete, you merge it into your master branch. You might even
|
||||
have sub-feature branches that are merged into a feature branch
|
||||
before the latter is merged.
|
||||
|
||||
In such a workflow, the first-parent history of master consists
|
||||
mainly of merges of feature branches into the mainline. git
|
||||
when-merged can be used to ask, "When (and why) was commit C
|
||||
merged into the current branch?"
|
||||
'';
|
||||
homepage = "https://github.com/mhagger/git-when-merged";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = python3.meta.platforms;
|
||||
maintainers = with maintainers; [ DamienCassou ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, stdenv
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, libiconv, Security
|
||||
, pkg-config, openssl
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-workspace";
|
||||
version = "1.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "orf";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-sPvb8EKrr9ZUMV1yMTXkFYgjW+LRJwJAXoc7lrWykaI=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-WAoYFCJCWKFvWN8XyRBZdzjCrcR6jMp8ZztSLHDP+r0=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optionals stdenv.isDarwin [ libiconv Security ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Sync personal and work git repositories from multiple providers";
|
||||
homepage = "https://github.com/orf/git-workspace";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ misuzu ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,390 @@
|
|||
{ fetchurl, lib, stdenv, buildPackages
|
||||
, curl, openssl, zlib, expat, perlPackages, python3, gettext, cpio
|
||||
, gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
|
||||
, openssh, pcre2, bash
|
||||
, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
|
||||
, libxslt, tcl, tk, makeWrapper, libiconv
|
||||
, svnSupport ? false, subversionClient, perlLibs, smtpPerlLibs
|
||||
, perlSupport ? stdenv.buildPlatform == stdenv.hostPlatform
|
||||
, nlsSupport ? true
|
||||
, osxkeychainSupport ? stdenv.isDarwin
|
||||
, guiSupport ? false
|
||||
, withManual ? true
|
||||
, pythonSupport ? true
|
||||
, withpcre2 ? true
|
||||
, sendEmailSupport ? false
|
||||
, Security, CoreServices
|
||||
, nixosTests
|
||||
, withLibsecret ? false
|
||||
, pkg-config, glib, libsecret
|
||||
, gzip # needed at runtime by gitweb.cgi
|
||||
, withSsh ? false
|
||||
}:
|
||||
|
||||
assert osxkeychainSupport -> stdenv.isDarwin;
|
||||
assert sendEmailSupport -> perlSupport;
|
||||
assert svnSupport -> perlSupport;
|
||||
|
||||
let
|
||||
version = "2.36.1";
|
||||
svn = subversionClient.override { perlBindings = perlSupport; };
|
||||
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "git"
|
||||
+ lib.optionalString svnSupport "-with-svn"
|
||||
+ lib.optionalString (!svnSupport && !guiSupport && !sendEmailSupport && !withManual && !pythonSupport && !withpcre2) "-minimal";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
|
||||
sha256 = "0w43a35mhc2qf2gjkxjlnkf2lq8g0snf34iy5gqx2678yq7llpa0";
|
||||
};
|
||||
|
||||
outputs = [ "out" ] ++ lib.optional withManual "doc";
|
||||
separateDebugInfo = true;
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = [
|
||||
./docbook2texi.patch
|
||||
./git-sh-i18n.patch
|
||||
./git-send-email-honor-PATH.patch
|
||||
./installCheck-path.patch
|
||||
] ++ lib.optionals withSsh [
|
||||
./ssh-path.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Fix references to gettext introduced by ./git-sh-i18n.patch
|
||||
substituteInPlace git-sh-i18n.sh \
|
||||
--subst-var-by gettext ${gettext}
|
||||
|
||||
# ensure we are using the correct shell when executing the test scripts
|
||||
patchShebangs t/*.sh
|
||||
'' + lib.optionalString withSsh ''
|
||||
for x in connect.c git-gui/lib/remote_add.tcl ; do
|
||||
substituteInPlace "$x" \
|
||||
--subst-var-by ssh "${openssh}/bin/ssh"
|
||||
done
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]
|
||||
++ lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
|
||||
docbook_xsl docbook_xml_dtd_45 libxslt ];
|
||||
buildInputs = [ curl openssl zlib expat cpio libiconv bash ]
|
||||
++ lib.optionals perlSupport [ perlPackages.perl ]
|
||||
++ lib.optionals guiSupport [tcl tk]
|
||||
++ lib.optionals withpcre2 [ pcre2 ]
|
||||
++ lib.optionals stdenv.isDarwin [ Security CoreServices ]
|
||||
++ lib.optionals withLibsecret [ pkg-config glib libsecret ];
|
||||
|
||||
# required to support pthread_cancel()
|
||||
NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && stdenv.hostPlatform.libc == "glibc") "-lgcc_s"
|
||||
+ lib.optionalString (stdenv.isFreeBSD) "-lthr";
|
||||
|
||||
configureFlags = [
|
||||
"ac_cv_prog_CURL_CONFIG=${lib.getDev curl}/bin/curl-config"
|
||||
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
"ac_cv_fread_reads_directories=yes"
|
||||
"ac_cv_snprintf_returns_bogus=no"
|
||||
"ac_cv_iconv_omits_bom=no"
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
makeFlagsArray+=( perllibdir=$out/$(perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}') )
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"prefix=\${out}"
|
||||
]
|
||||
# Git does not allow setting a shell separately for building and run-time.
|
||||
# Therefore lets leave it at the default /bin/sh when cross-compiling
|
||||
++ lib.optional (stdenv.buildPlatform == stdenv.hostPlatform) "SHELL_PATH=${stdenv.shell}"
|
||||
++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"])
|
||||
++ (if pythonSupport then ["PYTHON_PATH=${python3}/bin/python"] else ["NO_PYTHON=1"])
|
||||
++ lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
|
||||
++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc"])
|
||||
++ lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
|
||||
++ lib.optional withpcre2 "USE_LIBPCRE2=1"
|
||||
++ lib.optional (!nlsSupport) "NO_GETTEXT=1"
|
||||
# git-gui refuses to start with the version of tk distributed with
|
||||
# macOS Catalina. We can prevent git from building the .app bundle
|
||||
# by specifying an invalid tk framework. The postInstall step will
|
||||
# then ensure that git-gui uses tcl/tk from nixpkgs, which is an
|
||||
# acceptable version.
|
||||
#
|
||||
# See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706
|
||||
++ lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent";
|
||||
|
||||
disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||
stdenv.shellPackage
|
||||
];
|
||||
|
||||
|
||||
postBuild = ''
|
||||
make -C contrib/subtree
|
||||
'' + (lib.optionalString perlSupport ''
|
||||
make -C contrib/diff-highlight
|
||||
'') + (lib.optionalString osxkeychainSupport ''
|
||||
make -C contrib/credential/osxkeychain
|
||||
'') + (lib.optionalString withLibsecret ''
|
||||
make -C contrib/credential/libsecret
|
||||
'');
|
||||
|
||||
|
||||
## Install
|
||||
|
||||
# WARNING: Do not `rm` or `mv` files from the source tree; use `cp` instead.
|
||||
# We need many of these files during the installCheckPhase.
|
||||
|
||||
installFlags = [ "NO_INSTALL_HARDLINKS=1" ];
|
||||
|
||||
preInstall = (lib.optionalString osxkeychainSupport ''
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/
|
||||
rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o
|
||||
'') + (lib.optionalString withLibsecret ''
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/share/git/contrib/credential/libsecret/git-credential-libsecret $out/bin/
|
||||
rm -f $PWD/contrib/credential/libsecret/git-credential-libsecret.o
|
||||
'');
|
||||
|
||||
postInstall =
|
||||
''
|
||||
notSupported() {
|
||||
unlink $1 || true
|
||||
}
|
||||
|
||||
# Install git-subtree.
|
||||
make -C contrib/subtree install ${lib.optionalString withManual "install-doc"}
|
||||
rm -rf contrib/subtree
|
||||
|
||||
# Install contrib stuff.
|
||||
mkdir -p $out/share/git
|
||||
cp -a contrib $out/share/git/
|
||||
mkdir -p $out/share/bash-completion/completions
|
||||
ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/git
|
||||
ln -s $out/share/git/contrib/completion/git-prompt.sh $out/share/bash-completion/completions/
|
||||
# only readme, developed in another repo
|
||||
rm -r contrib/hooks/multimail
|
||||
mkdir -p $out/share/git-core/contrib
|
||||
cp -a contrib/hooks/ $out/share/git-core/contrib/
|
||||
substituteInPlace $out/share/git-core/contrib/hooks/pre-auto-gc-battery \
|
||||
--replace ' grep' ' ${gnugrep}/bin/grep' \
|
||||
|
||||
# grep is a runtime dependency, need to patch so that it's found
|
||||
substituteInPlace $out/libexec/git-core/git-sh-setup \
|
||||
--replace ' grep' ' ${gnugrep}/bin/grep' \
|
||||
--replace ' egrep' ' ${gnugrep}/bin/egrep'
|
||||
|
||||
# Fix references to the perl, sed, awk and various coreutil binaries used by
|
||||
# shell scripts that git calls (e.g. filter-branch)
|
||||
SCRIPT="$(cat <<'EOS'
|
||||
BEGIN{
|
||||
@a=(
|
||||
'${gnugrep}/bin/grep', '${gnused}/bin/sed', '${gawk}/bin/awk',
|
||||
'${coreutils}/bin/cut', '${coreutils}/bin/basename', '${coreutils}/bin/dirname',
|
||||
'${coreutils}/bin/wc', '${coreutils}/bin/tr'
|
||||
${lib.optionalString perlSupport ", '${perlPackages.perl}/bin/perl'"}
|
||||
);
|
||||
}
|
||||
foreach $c (@a) {
|
||||
$n=(split("/", $c))[-1];
|
||||
s|(?<=[^#][^/.-])\b''${n}(?=\s)|''${c}|g
|
||||
}
|
||||
EOS
|
||||
)"
|
||||
perl -0777 -i -pe "$SCRIPT" \
|
||||
$out/libexec/git-core/git-{sh-setup,filter-branch,merge-octopus,mergetool,quiltimport,request-pull,submodule,subtree,web--browse}
|
||||
|
||||
|
||||
# Also put git-http-backend into $PATH, so that we can use smart
|
||||
# HTTP(s) transports for pushing
|
||||
ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend
|
||||
'' + lib.optionalString perlSupport ''
|
||||
# wrap perl commands
|
||||
makeWrapper "$out/share/git/contrib/credential/netrc/git-credential-netrc.perl" $out/bin/git-credential-netrc \
|
||||
--set PERL5LIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
||||
wrapProgram $out/libexec/git-core/git-cvsimport \
|
||||
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
||||
wrapProgram $out/libexec/git-core/git-add--interactive \
|
||||
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
||||
wrapProgram $out/libexec/git-core/git-archimport \
|
||||
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
||||
wrapProgram $out/libexec/git-core/git-instaweb \
|
||||
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
||||
wrapProgram $out/libexec/git-core/git-cvsexportcommit \
|
||||
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
||||
|
||||
# gzip (and optionally bzip2, xz, zip) are runtime dependencies for
|
||||
# gitweb.cgi, need to patch so that it's found
|
||||
sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \
|
||||
$out/share/gitweb/gitweb.cgi
|
||||
# Give access to CGI.pm and friends (was removed from perl core in 5.22)
|
||||
for p in ${lib.concatStringsSep " " gitwebPerlLibs}; do
|
||||
sed -i -e "/use CGI /i use lib \"$p/${perlPackages.perl.libPrefix}\";" \
|
||||
"$out/share/gitweb/gitweb.cgi"
|
||||
done
|
||||
''
|
||||
|
||||
+ (if svnSupport then ''
|
||||
# wrap git-svn
|
||||
wrapProgram $out/libexec/git-core/git-svn \
|
||||
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath (perlLibs ++ [svn.out])}" \
|
||||
--prefix PATH : "${svn.out}/bin" ''
|
||||
else '' # replace git-svn by notification script
|
||||
notSupported $out/libexec/git-core/git-svn
|
||||
'')
|
||||
|
||||
+ (if sendEmailSupport then ''
|
||||
# wrap git-send-email
|
||||
wrapProgram $out/libexec/git-core/git-send-email \
|
||||
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath smtpPerlLibs}"
|
||||
'' else ''
|
||||
# replace git-send-email by notification script
|
||||
notSupported $out/libexec/git-core/git-send-email
|
||||
'')
|
||||
|
||||
+ lib.optionalString withManual ''# Install man pages
|
||||
make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \
|
||||
-C Documentation ''
|
||||
|
||||
+ (if guiSupport then ''
|
||||
# Wrap Tcl/Tk programs
|
||||
for prog in bin/gitk libexec/git-core/{git-gui,git-citool,git-gui--askpass}; do
|
||||
sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \
|
||||
-e "s|exec wish|exec '${tk}/bin/wish'|g" \
|
||||
"$out/$prog"
|
||||
done
|
||||
ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/gitk
|
||||
'' else ''
|
||||
# Don't wrap Tcl/Tk, replace them by notification scripts
|
||||
for prog in bin/gitk libexec/git-core/git-gui; do
|
||||
notSupported "$out/$prog"
|
||||
done
|
||||
'')
|
||||
+ lib.optionalString osxkeychainSupport ''
|
||||
# enable git-credential-osxkeychain on darwin if desired (default)
|
||||
mkdir -p $out/etc
|
||||
cat > $out/etc/gitconfig << EOF
|
||||
[credential]
|
||||
helper = osxkeychain
|
||||
EOF
|
||||
'';
|
||||
|
||||
|
||||
## InstallCheck
|
||||
|
||||
doCheck = false;
|
||||
doInstallCheck = true;
|
||||
|
||||
installCheckTarget = "test";
|
||||
|
||||
# see also installCheckFlagsArray
|
||||
installCheckFlags = [
|
||||
"DEFAULT_TEST_TARGET=prove"
|
||||
"PERL_PATH=${buildPackages.perl}/bin/perl"
|
||||
];
|
||||
|
||||
preInstallCheck = ''
|
||||
installCheckFlagsArray+=(
|
||||
GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save"
|
||||
GIT_TEST_INSTALLED=$out/bin
|
||||
${lib.optionalString (!svnSupport) "NO_SVN_TESTS=y"}
|
||||
)
|
||||
|
||||
function disable_test {
|
||||
local test=$1 pattern=$2
|
||||
if [ $# -eq 1 ]; then
|
||||
mv t/{,skip-}$test.sh || true
|
||||
else
|
||||
sed -i t/$test.sh \
|
||||
-e "/^\s*test_expect_.*$pattern/,/^\s*' *\$/{s/^/: #/}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Shared permissions are forbidden in sandbox builds:
|
||||
substituteInPlace t/test-lib.sh \
|
||||
--replace "test_set_prereq POSIXPERM" ""
|
||||
# TODO: Investigate while these still fail (without POSIXPERM):
|
||||
disable_test t0001-init 'shared overrides system'
|
||||
disable_test t0001-init 'init honors global core.sharedRepository'
|
||||
disable_test t1301-shared-repo
|
||||
# git-completion.bash: line 405: compgen: command not found:
|
||||
disable_test t9902-completion 'option aliases are shown with GIT_COMPLETION_SHOW_ALL'
|
||||
|
||||
# Our patched gettext never fallbacks
|
||||
disable_test t0201-gettext-fallbacks
|
||||
|
||||
${lib.optionalString (!sendEmailSupport) ''
|
||||
# Disable sendmail tests
|
||||
disable_test t9001-send-email
|
||||
''}
|
||||
|
||||
# XXX: I failed to understand why this one fails.
|
||||
# Could someone try to re-enable it on the next release ?
|
||||
# Tested to fail: 2.18.0 and 2.19.0
|
||||
disable_test t1700-split-index "null sha1"
|
||||
|
||||
# Tested to fail: 2.18.0
|
||||
disable_test t9902-completion "sourcing the completion script clears cached --options"
|
||||
|
||||
# Flaky tests:
|
||||
disable_test t5319-multi-pack-index
|
||||
disable_test t6421-merge-partial-clone
|
||||
|
||||
${lib.optionalString (!perlSupport) ''
|
||||
# request-pull is a Bash script that invokes Perl, so it is not available
|
||||
# when NO_PERL=1, and the test should be skipped, but the test suite does
|
||||
# not check for the Perl prerequisite.
|
||||
disable_test t5150-request-pull
|
||||
''}
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
# XXX: Some tests added in 2.24.0 fail.
|
||||
# Please try to re-enable on the next release.
|
||||
disable_test t7816-grep-binary-pattern
|
||||
# fail (as of 2.33.0)
|
||||
#===( 18623;1208 8/? 224/? 2/? )= =fatal: Not a valid object name refs/tags/signed-empty
|
||||
disable_test t6300-for-each-ref
|
||||
#===( 22665;1651 9/? 1/? 0/? 0/? )= =/private/tmp/nix-build-git-2.33.0.drv-2/git-2.33.0/t/../contrib/completion/git-completion.bash: line 405: compgen: command not found
|
||||
disable_test t9902-completion
|
||||
# not ok 1 - populate workdir (with 2.33.1 on x86_64-darwin)
|
||||
disable_test t5003-archive-zip
|
||||
'' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
|
||||
disable_test t7527-builtin-fsmonitor
|
||||
'' + lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
# Test fails (as of 2.17.0, musl 1.1.19)
|
||||
disable_test t3900-i18n-commit
|
||||
# Fails largely due to assumptions about BOM
|
||||
# Tested to fail: 2.18.0
|
||||
disable_test t0028-working-tree-encoding
|
||||
'';
|
||||
|
||||
stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ];
|
||||
|
||||
passthru = {
|
||||
shellPath = "/bin/git-shell";
|
||||
tests = {
|
||||
buildbot-integration = nixosTests.buildbot;
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://git-scm.com/";
|
||||
description = "Distributed version control system";
|
||||
license = lib.licenses.gpl2;
|
||||
changelog = "https://github.com/git/git/blob/v${version}/Documentation/RelNotes/${version}.txt";
|
||||
|
||||
longDescription = ''
|
||||
Git, a popular distributed version control system designed to
|
||||
handle very large projects with speed and efficiency.
|
||||
'';
|
||||
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ primeos wmertens globin ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
This patch does two things: (1) use the right name for `docbook2texi',
|
||||
and (2) make sure `gitman.info' isn't produced since it's broken (duplicate
|
||||
node names).
|
||||
|
||||
diff --git a/Documentation/Makefile b/Documentation/Makefile
|
||||
index 26a2342bea..ceccd67ebb 100644
|
||||
--- a/Documentation/Makefile
|
||||
+++ b/Documentation/Makefile
|
||||
@@ -132,7 +132,7 @@ HTML_REPO = ../../git-htmldocs
|
||||
|
||||
MAKEINFO = makeinfo
|
||||
INSTALL_INFO = install-info
|
||||
-DOCBOOK2X_TEXI = docbook2x-texi
|
||||
+DOCBOOK2X_TEXI = docbook2texi
|
||||
DBLATEX = dblatex
|
||||
ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex
|
||||
DBLATEX_COMMON = -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty
|
||||
@@ -250,7 +250,7 @@ man1: $(DOC_MAN1)
|
||||
man5: $(DOC_MAN5)
|
||||
man7: $(DOC_MAN7)
|
||||
|
||||
-info: git.info gitman.info
|
||||
+info: git.info
|
||||
|
||||
pdf: user-manual.pdf
|
||||
|
||||
@@ -266,10 +266,9 @@ install-man: man
|
||||
|
||||
install-info: info
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
|
||||
- $(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir)
|
||||
+ $(INSTALL) -m 644 git.info $(DESTDIR)$(infodir)
|
||||
if test -r $(DESTDIR)$(infodir)/dir; then \
|
||||
$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\
|
||||
- $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\
|
||||
else \
|
||||
echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
|
||||
fi
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
|
||||
index 3db4eab4ba..39bc0e77c9 100644
|
||||
--- a/Documentation/git-send-email.txt
|
||||
+++ b/Documentation/git-send-email.txt
|
||||
@@ -220,9 +220,9 @@ a password is obtained using 'git-credential'.
|
||||
--smtp-server=<host>::
|
||||
If set, specifies the outgoing SMTP server to use (e.g.
|
||||
`smtp.example.com` or a raw IP address). If unspecified, and if
|
||||
- `--sendmail-cmd` is also unspecified, the default is to search
|
||||
- for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH if such a
|
||||
- program is available, falling back to `localhost` otherwise.
|
||||
+ `--sendmail-cmd` is also unspecified, the default is to search for
|
||||
+ `sendmail` in $PATH if such a program is available, falling back to
|
||||
+ `localhost` otherwise.
|
||||
+
|
||||
For backward compatibility, this option can also specify a full pathname
|
||||
of a sendmail-like program instead; the program must support the `-i`
|
||||
diff --git a/git-send-email.perl b/git-send-email.perl
|
||||
index e65d969d0b..508d49483d 100755
|
||||
--- a/git-send-email.perl
|
||||
+++ b/git-send-email.perl
|
||||
@@ -1066,8 +1066,7 @@ sub expand_one_alias {
|
||||
}
|
||||
|
||||
if (!defined $sendmail_cmd && !defined $smtp_server) {
|
||||
- my @sendmail_paths = qw( /usr/sbin/sendmail /usr/lib/sendmail );
|
||||
- push @sendmail_paths, map {"$_/sendmail"} split /:/, $ENV{PATH};
|
||||
+ my @sendmail_paths = map {"$_/sendmail"} split /:/, $ENV{PATH};
|
||||
foreach (@sendmail_paths) {
|
||||
if (-x $_) {
|
||||
$sendmail_cmd = $_;
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
diff --git a/git-sh-i18n.sh b/git-sh-i18n.sh
|
||||
index e1d917fd27..e90f8e1414 100644
|
||||
--- a/git-sh-i18n.sh
|
||||
+++ b/git-sh-i18n.sh
|
||||
@@ -26,7 +26,7 @@ then
|
||||
elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"
|
||||
then
|
||||
: no probing necessary
|
||||
-elif type gettext.sh >/dev/null 2>&1
|
||||
+elif type @gettext@/bin/gettext.sh >/dev/null 2>&1
|
||||
then
|
||||
# GNU libintl's gettext.sh
|
||||
GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
|
||||
@@ -43,7 +43,8 @@ export GIT_INTERNAL_GETTEXT_SH_SCHEME
|
||||
case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in
|
||||
gnu)
|
||||
# Use libintl's gettext.sh, or fall back to English if we can't.
|
||||
- . gettext.sh
|
||||
+ . @gettext@/bin/gettext.sh
|
||||
+ export PATH=@gettext@/bin:$PATH
|
||||
;;
|
||||
gettext_without_eval_gettext)
|
||||
# Solaris has a gettext(1) but no eval_gettext(1)
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/t/test-lib.sh b/t/test-lib.sh
|
||||
index 8665b0a9b6..8bb892b1af 100644
|
||||
--- a/t/test-lib.sh
|
||||
+++ b/t/test-lib.sh
|
||||
@@ -1227,7 +1227,7 @@ elif test -n "$GIT_TEST_INSTALLED"
|
||||
then
|
||||
GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) ||
|
||||
error "Cannot run git from $GIT_TEST_INSTALLED."
|
||||
- PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$PATH
|
||||
+ PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$GIT_BUILD_DIR:$PATH
|
||||
GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH}
|
||||
else # normal case, use ../bin-wrappers only unless $with_dashes:
|
||||
if test -n "$no_bin_wrappers"
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
diff --git a/connect.c b/connect.c
|
||||
index 4813f005ab..b3f12f3268 100644
|
||||
--- a/connect.c
|
||||
+++ b/connect.c
|
||||
@@ -1183,7 +1183,7 @@ static void fill_ssh_args(struct child_process *conn, const char *ssh_host,
|
||||
|
||||
ssh = getenv("GIT_SSH");
|
||||
if (!ssh)
|
||||
- ssh = "ssh";
|
||||
+ ssh = "@ssh@";
|
||||
variant = determine_ssh_variant(ssh, 0);
|
||||
}
|
||||
|
||||
diff --git a/git-gui/lib/remote_add.tcl b/git-gui/lib/remote_add.tcl
|
||||
index 480a6b30d0..7817204241 100644
|
||||
--- a/git-gui/lib/remote_add.tcl
|
||||
+++ b/git-gui/lib/remote_add.tcl
|
||||
@@ -139,7 +139,7 @@ method _add {} {
|
||||
# Parse the location
|
||||
if { [regexp {(?:git\+)?ssh://([^/]+)(/.+)} $location xx host path]
|
||||
|| [regexp {([^:][^:]+):(.+)} $location xx host path]} {
|
||||
- set ssh ssh
|
||||
+ set ssh @ssh@
|
||||
if {[info exists env(GIT_SSH)]} {
|
||||
set ssh $env(GIT_SSH)
|
||||
}
|
||||
19
pkgs/applications/version-management/git-and-tools/git/update.sh
Executable file
19
pkgs/applications/version-management/git-and-tools/git/update.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl common-updater-scripts jq git
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion git" | tr -d '"')"
|
||||
latestTag="$(git ls-remote --tags --sort="v:refname" https://github.com/git/git.git | grep -v '\{\}' | grep -v '\-rc' | tail -1 | sed 's|^.*/v\(.*\)|\1|')"
|
||||
targetVersion="${1:-$latestTag}"
|
||||
|
||||
if [ ! "${oldVersion}" = "${targetVersion}" ]; then
|
||||
update-source-version git "${targetVersion}"
|
||||
nixpkgs="$(git rev-parse --show-toplevel)"
|
||||
default_nix="$nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix"
|
||||
nix-build -A git
|
||||
git add "${default_nix}"
|
||||
git commit -m "git: ${oldVersion} -> ${targetVersion}"
|
||||
else
|
||||
echo "git is already up-to-date"
|
||||
fi
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{ fetchgit, lib, stdenv, perl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "git2cl";
|
||||
version = "unstable-2008-08-27";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://repo.or.cz/git2cl.git";
|
||||
rev = "8373c9f74993e218a08819cbcdbab3f3564bbeba";
|
||||
sha256 = "b0d39379640c8a12821442431e2121f7908ce1cc88ec8ec6bede218ea8c21f2f";
|
||||
};
|
||||
|
||||
buildInputs = [ perl ];
|
||||
installPhase = ''
|
||||
install -D -m755 git2cl $out/bin/git2cl
|
||||
install -D -m644 README $out/share/doc/git2cl/README
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://savannah.nongnu.org/projects/git2cl";
|
||||
description = "Convert git logs to GNU style ChangeLog files";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{ lib
|
||||
, buildPythonApplication
|
||||
, fetchFromGitHub
|
||||
, git
|
||||
, pytest
|
||||
, pyyaml
|
||||
, setuptools
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
version = "0.11.9";
|
||||
pname = "gita";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "9+zuLAx9lMfltsBqjvsivJ5wPnStPfq11XgGMv/JDpY=";
|
||||
rev = version;
|
||||
repo = "gita";
|
||||
owner = "nosarthur";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pyyaml
|
||||
setuptools
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postUnpack = ''
|
||||
for case in "\n" ""; do
|
||||
substituteInPlace source/tests/test_main.py \
|
||||
--replace "'gita$case'" "'source$case'"
|
||||
done
|
||||
'';
|
||||
|
||||
checkInputs = [
|
||||
git
|
||||
pytest
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
git init
|
||||
pytest tests
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --bash --name gita ${src}/.gita-completion.bash
|
||||
installShellCompletion --zsh --name gita ${src}/.gita-completion.zsh
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A command-line tool to manage multiple git repos";
|
||||
homepage = "https://github.com/nosarthur/gita";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ seqizz ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gitbatch";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "isacikgoz";
|
||||
repo = "gitbatch";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ovmdbyPRSebwmW6AW55jBgBKaNdY6w5/wrpUF2cMKw8=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-wwpaJO5cXMsvqFXj+qGiIm4zg/SL4YCm2mNnG/qdilw=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
checkFlags = [ "-short" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Running git UI commands";
|
||||
homepage = "https://github.com/isacikgoz/gitbatch";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ teto ];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
{ pkgs, lib, stdenv, fetchFromGitHub }:
|
||||
|
||||
with pkgs.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gitflow";
|
||||
version = "1.12.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "petervanderdoes";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-kHirHG/bfsU6tKyQ0khNSTyChhzHfzib+HyA3LOtBI8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
||||
|
||||
preBuild = ''
|
||||
makeFlagsArray+=(prefix="$out")
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/git-flow \
|
||||
--set FLAGS_GETOPT_CMD ${pkgs.getopt}/bin/getopt \
|
||||
--suffix PATH : ${pkgs.git}/bin \
|
||||
--prefix PATH : ${pkgs.coreutils}/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/petervanderdoes/gitflow";
|
||||
description = "Extend git with the Gitflow branching model";
|
||||
longDescription = ''
|
||||
A set of scripts that provide high-level repository operations
|
||||
for managing feature/release/hotfix branches in a Git repository,
|
||||
particularly suited to be utilised to follow Vincent Driessen's
|
||||
branching model.
|
||||
'';
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ offline ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
{ callPackage, lib, stdenv, fetchFromGitHub, git, zsh }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gitstatus";
|
||||
version = "1.5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "romkatv";
|
||||
repo = "gitstatus";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-mVfB3HWjvk4X8bmLEC/U8SKBRytTh/gjjuReqzN5qTk=";
|
||||
};
|
||||
|
||||
buildInputs = [ (callPackage ./romkatv_libgit2.nix { }) ];
|
||||
|
||||
postPatch = ''
|
||||
sed -i '1i GITSTATUS_AUTO_INSTALL=''${GITSTATUS_AUTO_INSTALL-0}' gitstatus.plugin.sh
|
||||
sed -i '1i GITSTATUS_AUTO_INSTALL=''${GITSTATUS_AUTO_INSTALL-0}' gitstatus.plugin.zsh
|
||||
sed -i "1a GITSTATUS_DAEMON=$out/bin/gitstatusd" install
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 usrbin/gitstatusd $out/bin/gitstatusd
|
||||
install -Dm444 gitstatus.plugin.sh -t $out/share/gitstatus/
|
||||
install -Dm444 gitstatus.plugin.zsh -t $out/share/gitstatus/
|
||||
install -Dm555 install -t $out/share/gitstatus/
|
||||
install -Dm444 build.info -t $out/share/gitstatus/
|
||||
|
||||
# the fallback path is wrong in the case of home-manager
|
||||
# because the FHS directories don't start at /
|
||||
substituteInPlace install \
|
||||
--replace "_gitstatus_install_main ." "_gitstatus_install_main $out"
|
||||
'';
|
||||
|
||||
# Don't install the "install" and "build.info" files, which the end user
|
||||
# should not need to worry about.
|
||||
pathsToLink = [
|
||||
"/bin/gitstatusd"
|
||||
"/share/gitstatus/gitstatus.plugin.sh"
|
||||
"/share/gitstatus/gitstatus.plugin.zsh"
|
||||
];
|
||||
|
||||
# The install check sets up an empty Git repository and a minimal zshrc that
|
||||
# invokes gitstatus.plugin.zsh. It runs zsh against this zshrc and verifies
|
||||
# that the script was sourced successfully and that the "gitstatus_query"
|
||||
# command ran successfully. This tests the binary itself and the zsh
|
||||
# integration.
|
||||
installCheckInputs = [ git zsh ];
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
TEMP=$(mktemp -d)
|
||||
cd "$TEMP"
|
||||
|
||||
git init
|
||||
|
||||
echo '
|
||||
GITSTATUS_LOG_LEVEL=DEBUG
|
||||
. $out/share/gitstatus/gitstatus.plugin.zsh || exit 1
|
||||
|
||||
gitstatus_stop NIX_TEST && gitstatus_start NIX_TEST
|
||||
gitstatus_query NIX_TEST
|
||||
if [[ $? -ne 0 ]]; then
|
||||
print -- "Something went wrong with gitstatus"
|
||||
exit 1
|
||||
elif [[ $VCS_STATUS_RESULT != "ok-sync" ]]; then
|
||||
print -- "Not in a Git repo"
|
||||
exit 1
|
||||
else
|
||||
print -- "OK"
|
||||
exit 0
|
||||
fi
|
||||
' > .zshrc
|
||||
|
||||
# If we try to run zsh like "zsh -i -c true" or "zsh -i > output" then job
|
||||
# control will be disabled in the shell and the gitstatus plugin script
|
||||
# will fail when it tries to set the MONITOR option. As a workaround, we
|
||||
# run zsh as a full-fledged independent process and then wait for it to
|
||||
# exit. (The "exit" statements in the zshrc ensure that zsh will exit
|
||||
# almost immediately after starting.)
|
||||
ZDOTDIR=. zsh -i &
|
||||
wait $!
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "10x faster implementation of `git status` command";
|
||||
homepage = "https://github.com/romkatv/gitstatus";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ mmlb hexa SuperSandro2000 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{ fetchFromGitHub, libgit2, ... }:
|
||||
|
||||
libgit2.overrideAttrs (oldAttrs: {
|
||||
cmakeFlags = oldAttrs.cmakeFlags ++ [
|
||||
"-DBUILD_CLAR=OFF"
|
||||
"-DBUILD_SHARED_LIBS=OFF"
|
||||
"-DREGEX_BACKEND=builtin"
|
||||
"-DUSE_BUNDLED_ZLIB=ON"
|
||||
"-DUSE_GSSAPI=OFF"
|
||||
"-DUSE_HTTPS=OFF"
|
||||
"-DUSE_HTTP_PARSER=builtin" # overwritten from libgit2
|
||||
"-DUSE_NTLMCLIENT=OFF"
|
||||
"-DUSE_SSH=OFF"
|
||||
"-DZERO_NSEC=ON"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "romkatv";
|
||||
repo = "libgit2";
|
||||
rev = "tag-0ad3d776aa86dd607dc86dcd7f77ad3ed7ebec61";
|
||||
sha256 = "sha256-mXCmspM3fqI14DF9sAIMH5vGdMMjWkdDjdME4EiQuqY=";
|
||||
};
|
||||
|
||||
patches = [ ];
|
||||
})
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, fetchFromGitHub, buildGoModule }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gitty";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "muesli";
|
||||
repo = "gitty";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-g0D6nJiHY7cz72DSmdQZsj9Vgv/VOp0exTcLsaypGiU=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-qrLECQkjXH0aTHmysq64jnXj9jgbunpVtBAIXJOEYIY=";
|
||||
|
||||
ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/muesli/gitty/";
|
||||
description = "Contextual information about your git projects, right on the command-line";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ izorkin ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, libiconv
|
||||
, openssl
|
||||
, pkg-config
|
||||
, xclip
|
||||
, AppKit
|
||||
, Security
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "gitui";
|
||||
version = "0.20.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "extrawurst";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-zYM0JVhgFnp8JDBx9iEOt029sr8azIPX5jrtvUE/Pn0=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-kbLI95GzCwm2OKzzpk7jvgtm8vArf29u5BiPRTh2OmE=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optional stdenv.isLinux xclip
|
||||
++ lib.optionals stdenv.isDarwin [ libiconv Security AppKit ];
|
||||
|
||||
# Needed to get openssl-sys to use pkg-config.
|
||||
OPENSSL_NO_VENDOR = 1;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Blazing fast terminal-ui for Git written in Rust";
|
||||
homepage = "https://github.com/extrawurst/gitui";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ Br1ght0ne yanganto ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, buildEnv, git, fetchFromGitHub
|
||||
, gitwebTheme ? false }:
|
||||
|
||||
let
|
||||
gitwebThemeSrc = fetchFromGitHub {
|
||||
owner = "kogakure";
|
||||
repo = "gitweb-theme";
|
||||
rev = "049b88e664a359f8ec25dc6f531b7e2aa60dd1a2";
|
||||
postFetch = ''
|
||||
mkdir -p "$TMPDIR/gitwebTheme"
|
||||
mv "$out"/* "$TMPDIR/gitwebTheme/"
|
||||
mkdir "$out/static"
|
||||
mv "$TMPDIR/gitwebTheme"/* "$out/static/"
|
||||
'';
|
||||
sha256 = "17hypq6jvhy6zhh26lp3nyi52npfd5wy5752k6sq0shk4na2acqi";
|
||||
};
|
||||
in buildEnv {
|
||||
name = "gitweb-${lib.getVersion git}";
|
||||
|
||||
ignoreCollisions = true;
|
||||
paths = lib.optional gitwebTheme gitwebThemeSrc
|
||||
++ [ "${git}/share/gitweb" ];
|
||||
|
||||
meta = git.meta // {
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, installShellFiles, stdenv }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "glab";
|
||||
version = "1.22.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "profclems";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-7w6cbeZYhmV0EXXcWlXFq2pQGGxc5Ok4bba0g3fcgmE=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-hGpJXCs5lZ6QQHr6LW1fCT+CVtOaUpYXJPchDPDdbaM=";
|
||||
|
||||
ldflags = [
|
||||
"-X main.version=${version}"
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
# failed to read configuration: mkdir /homeless-shelter: permission denied
|
||||
export HOME=$TMPDIR
|
||||
'';
|
||||
|
||||
subPackages = [ "cmd/glab" ];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
|
||||
installShellCompletion --cmd glab \
|
||||
--bash <($out/bin/glab completion -s bash) \
|
||||
--fish <($out/bin/glab completion -s fish) \
|
||||
--zsh <($out/bin/glab completion -s zsh)
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "An open-source GitLab command line tool";
|
||||
license = licenses.mit;
|
||||
homepage = "https://glab.readthedocs.io/";
|
||||
maintainers = with maintainers; [ freezeboy ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, rustPlatform, fetchFromGitHub }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "glitter";
|
||||
version = "1.5.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "milo123459";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-4oI0opwbmEyHc3zx06l8bDPnOi7rGrMqUJPBDAfmPY0=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-rmECD/0ThDXBAGqDMNbyHi9eoGNOJhBndaxCuUS/qpc=";
|
||||
|
||||
# tests require it to be in a git repository
|
||||
preCheck = ''
|
||||
git init
|
||||
'';
|
||||
|
||||
# error: Found argument '--test-threads' which wasn't expected, or isn't valid in this context
|
||||
checkFlags = [ "--skip" "runs_correctly" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A git wrapper that allows you to compress multiple commands into one";
|
||||
homepage = "https://github.com/milo123459/glitter";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ figsoda ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, git
|
||||
, ghq
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gst";
|
||||
version = "5.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "uetchy";
|
||||
repo = "gst";
|
||||
rev = "v${version}";
|
||||
sha256 = "07cixz5wlzzb4cwcrncg2mz502wlhd3awql5js1glw9f6qfwc5in";
|
||||
};
|
||||
|
||||
vendorSha256 = "0k5xl55vzpl64gwsgaff92jismpx6y7l2ia0kx7gamd1vklf0qwh";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
nativeBuildInputs = [
|
||||
git
|
||||
ghq
|
||||
];
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w" "-X=main.Version=${version}"
|
||||
];
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
if [[ "$("$out/bin/${pname}" --version)" == "${pname} version ${version}" ]]; then
|
||||
export HOME=$(mktemp -d)
|
||||
git config --global user.name "Test User"
|
||||
git config --global user.email "test@example.com"
|
||||
git config --global init.defaultBranch "main"
|
||||
git config --global ghq.user "user"
|
||||
ghq create test > /dev/null 2>&1
|
||||
touch $HOME/ghq/github.com/user/test/SmokeTest
|
||||
$out/bin/${pname} list | grep SmokeTest > /dev/null
|
||||
echo '${pname} smoke check passed'
|
||||
else
|
||||
echo '${pname} smoke check failed'
|
||||
return 1
|
||||
fi
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Supercharge your ghq workflow";
|
||||
homepage = "https://github.com/uetchy/gst";
|
||||
maintainers = with lib.maintainers; [ _0x4A6F ];
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
{ lib, buildGoPackage, fetchFromGitHub, git, groff, installShellFiles, unixtools, nixosTests }:
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "hub";
|
||||
version = "2.14.2";
|
||||
|
||||
goPackagePath = "github.com/github/hub";
|
||||
|
||||
# Only needed to build the man-pages
|
||||
excludedPackages = [ "github.com/github/hub/md2roff-bin" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "github";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1qjab3dpia1jdlszz3xxix76lqrm4zbmqzd9ymld7h06awzsg2vh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ groff installShellFiles unixtools.col ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
substituteInPlace git/git.go --replace "cmd.New(\"git\")" "cmd.New(\"${git}/bin/git\")"
|
||||
substituteInPlace commands/args.go --replace "Executable: \"git\"" "Executable: \"${git}/bin/git\""
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
cd go/src/${goPackagePath}
|
||||
installShellCompletion --zsh --name _hub etc/hub.zsh_completion
|
||||
installShellCompletion --bash --name hub etc/hub.bash_completion.sh
|
||||
installShellCompletion --fish --name hub.fish etc/hub.fish_completion
|
||||
|
||||
LC_ALL=C.UTF8 \
|
||||
make man-pages
|
||||
installManPage share/man/man[1-9]/*.[1-9]
|
||||
'';
|
||||
|
||||
passthru.tests = { inherit (nixosTests) hub; };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command-line wrapper for git that makes you better at GitHub";
|
||||
license = licenses.mit;
|
||||
homepage = "https://hub.github.com/";
|
||||
maintainers = with maintainers; [ globin ];
|
||||
platforms = with platforms; unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromSourcehut
|
||||
, scdoc
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "hut";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~emersion";
|
||||
repo = "hut";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-2YUrDPulpLQQGw31nEasHoQ/AppECg7acwwqu6JDT5U=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-EmokL3JlyM6C5/NOarCAJuqNsDO2tgHwqQdv0rAk+Xk=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
scdoc
|
||||
];
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
postBuild = ''
|
||||
make $makeFlags completions doc/hut.1
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
make $makeFlags install
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://sr.ht/~emersion/hut/";
|
||||
description = "A CLI tool for Sourcehut / sr.ht";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ fgaz ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, makeWrapper, xdg-utils, installShellFiles, git }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "lab";
|
||||
version = "0.25.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zaquestion";
|
||||
repo = "lab";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-7AUhH2aBRpsjUzZQGE2fHDOa1k0rMUfZJqUEKZXpJuM=";
|
||||
};
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
vendorSha256 = "sha256-ChysquNuUffcM3qaWUdqu3Av33gnKkdlotEoFKoedA0=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
|
||||
ldflags = [ "-s" "-w" "-X main.version=${version}" ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/lab --prefix PATH ":" "${lib.makeBinPath [ git xdg-utils ]}";
|
||||
for shell in bash fish zsh; do
|
||||
$out/bin/lab completion $shell > lab.$shell
|
||||
installShellCompletion lab.$shell
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab";
|
||||
homepage = "https://zaquestion.github.io/lab";
|
||||
license = licenses.cc0;
|
||||
maintainers = with maintainers; [ marsam dtzWill SuperSandro2000 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "lefthook";
|
||||
version = "0.7.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = "v${version}";
|
||||
owner = "evilmartians";
|
||||
repo = "lefthook";
|
||||
sha256 = "sha256-XyuXegCTJSW4uO6fEaRKq/jZnE+JbrxZw0kcDvhpsVo=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-Rp67FnFU27u85t02MIs7wZQoOa8oGsHVVPQ9OdIyTJg=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fast and powerful Git hooks manager for any type of projects";
|
||||
homepage = "https://github.com/Arkweid/lefthook";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ rencire ];
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue