The script can be used this way: git commit -sm "$(./scripts/modified_pages.sh): Short commit msg" And then maybe --amend and add a longer message. This is especially useful for changes to many pages at once, usually when running a script to apply some global changes. Signed-off-by: Alejandro Colomar <alx.manpages@xxxxxxxxx> --- scripts/modified_pages.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 scripts/modified_pages.sh diff --git a/scripts/modified_pages.sh b/scripts/modified_pages.sh new file mode 100755 index 000000000..f6c4a6cea --- /dev/null +++ b/scripts/modified_pages.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +## SPDX-License-Identifier: GPL-2.0-only +######################################################################## +## +## (C) Copyright 2020, Alejandro Colomar +## This program is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License +## as published by the Free Software Foundation; version 2. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details +## (http://www.gnu.org/licenses/gpl-2.0.html). +## +######################################################################## +## +## The output of this script is a +## list of all files with changes staged for commit +## (basename only if the files are within "man?/"), +## separated by ", ". +## Usage: +## git commit -m "$(./scripts/modified_pages.sh): Short message here" +## + + +git status \ +|sed "/Changes not staged for commit:/q" \ +|grep -E "^\s*(modified|deleted|new file):" \ +|sed "s/^.*:\s*/, /" \ +|sed "s%man[1-9]/%%" \ +|tr -d '\n' \ +|sed "s/^, //" -- 2.29.2