mirror of
https://github.com/gburd/nix-config.git
synced 2024-11-14 00:26:24 +00:00
52 lines
1.5 KiB
Nix
52 lines
1.5 KiB
Nix
|
{ pkgs, lib, config, ... }:
|
||
|
let
|
||
|
ssh = "${pkgs.openssh}/bin/ssh";
|
||
|
|
||
|
git-m7 = pkgs.writeShellScriptBin "git-m7" ''
|
||
|
repo="$(git remote -v | grep git@m7.rs | head -1 | cut -d ':' -f2 | cut -d ' ' -f1)"
|
||
|
# Add a .git suffix if it's missing
|
||
|
if [[ "$repo" != *".git" ]]; then
|
||
|
repo="$repo.git"
|
||
|
fi
|
||
|
|
||
|
if [ "$1" == "init" ]; then
|
||
|
if [ "$2" == "" ]; then
|
||
|
echo "You must specify a name for the repo"
|
||
|
exit 1
|
||
|
fi
|
||
|
${ssh} -A git@m7.rs << EOF
|
||
|
git init --bare "$2.git"
|
||
|
git -C "$2.git" branch -m main
|
||
|
EOF
|
||
|
git remote add origin git@m7.rs:"$2.git"
|
||
|
elif [ "$1" == "ls" ]; then
|
||
|
${ssh} -A git@m7.rs ls
|
||
|
else
|
||
|
${ssh} -A git@m7.rs git -C "/srv/git/$repo" $@
|
||
|
fi
|
||
|
'';
|
||
|
in
|
||
|
{
|
||
|
home.packages = [ git-m7 ];
|
||
|
programs.git = {
|
||
|
enable = true;
|
||
|
package = pkgs.gitAndTools.gitFull;
|
||
|
aliases = {
|
||
|
pushall = "!git remote | xargs -L1 git push --all";
|
||
|
graph = "log --decorate --oneline --graph";
|
||
|
add-nowhitespace = "!git diff -U0 -w --no-color | git apply --cached --ignore-whitespace --unidiff-zero -";
|
||
|
fast-forward = "merge --ff-only";
|
||
|
};
|
||
|
userName = "Gabriel Fontes";
|
||
|
userEmail = "hi@m7.rs";
|
||
|
extraConfig = {
|
||
|
init.defaultBranch = "main";
|
||
|
user.signing.key = "CE707A2C17FAAC97907FF8EF2E54EA7BFE630916";
|
||
|
commit.gpgSign = true;
|
||
|
gpg.program = "${config.programs.gpg.package}/bin/gpg2";
|
||
|
};
|
||
|
lfs.enable = true;
|
||
|
ignores = [ ".direnv" "result" ];
|
||
|
};
|
||
|
}
|