From 6816c8ec3c5913a860116fd07453057e2d0ec10d Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Sat, 25 May 2024 18:00:41 +0200 Subject: refactor(git/scripts): Upgrade `git-cm` to a 'real' package --- modules/home/conf/git/scripts/commit.sh | 18 ------------------ modules/home/pkgs/default.nix | 1 + pkgs/by-name/gi/git-cm/git-commit.sh | 18 ++++++++++++++++++ pkgs/by-name/gi/git-cm/package.nix | 14 ++++++++++++++ 4 files changed, 33 insertions(+), 18 deletions(-) delete mode 100755 modules/home/conf/git/scripts/commit.sh create mode 100755 pkgs/by-name/gi/git-cm/git-commit.sh create mode 100644 pkgs/by-name/gi/git-cm/package.nix diff --git a/modules/home/conf/git/scripts/commit.sh b/modules/home/conf/git/scripts/commit.sh deleted file mode 100755 index 2204e4d6..00000000 --- a/modules/home/conf/git/scripts/commit.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH - -ROOT="$(git rev-parse --show-toplevel)" - -# Take first line from previous commit -if [ -f "$ROOT/.git/COMMIT_EDITMSG" ]; then - sed '1s/\(.*\)\((.*)\)\?\(:.*\)/\1\2: /;1p;d' "$ROOT/.git/COMMIT_EDITMSG" >"$ROOT/.git/COMMIT_TEMPLATE" -else - printf "\n" >"$ROOT/.git/COMMIT_TEMPLATE" -fi -sed '1d' "$(git config commit.template)" >>"$ROOT/.git/COMMIT_TEMPLATE" - -git commit --template "$ROOT/.git/COMMIT_TEMPLATE" --verbose "$@" - -# vim: ft=sh diff --git a/modules/home/pkgs/default.nix b/modules/home/pkgs/default.nix index 372572b2..e7b269ac 100644 --- a/modules/home/pkgs/default.nix +++ b/modules/home/pkgs/default.nix @@ -195,6 +195,7 @@ with pkgs; let git # the fast distributed version control system git-absorb # git commit --fixup, but automatic git-edit-index # Allows you to edit the indexed version of a file + git-cm # A wrapper that re-adds the last commit's subject glow # Command-line markdown renderer ]; }; diff --git a/pkgs/by-name/gi/git-cm/git-commit.sh b/pkgs/by-name/gi/git-cm/git-commit.sh new file mode 100755 index 00000000..2204e4d6 --- /dev/null +++ b/pkgs/by-name/gi/git-cm/git-commit.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH + +ROOT="$(git rev-parse --show-toplevel)" + +# Take first line from previous commit +if [ -f "$ROOT/.git/COMMIT_EDITMSG" ]; then + sed '1s/\(.*\)\((.*)\)\?\(:.*\)/\1\2: /;1p;d' "$ROOT/.git/COMMIT_EDITMSG" >"$ROOT/.git/COMMIT_TEMPLATE" +else + printf "\n" >"$ROOT/.git/COMMIT_TEMPLATE" +fi +sed '1d' "$(git config commit.template)" >>"$ROOT/.git/COMMIT_TEMPLATE" + +git commit --template "$ROOT/.git/COMMIT_TEMPLATE" --verbose "$@" + +# vim: ft=sh diff --git a/pkgs/by-name/gi/git-cm/package.nix b/pkgs/by-name/gi/git-cm/package.nix new file mode 100644 index 00000000..96f58b09 --- /dev/null +++ b/pkgs/by-name/gi/git-cm/package.nix @@ -0,0 +1,14 @@ +{ + sysLib, + git, + gnused, +}: +sysLib.writeShellScript { + name = "git-commit"; + src = ./git-commit.sh; + keepPath = true; + dependencies = [ + git + gnused + ]; +} -- cgit 1.4.1