# HG changeset patch # User "Yann E. MORIN" # Date 1256668453 -3600 # Node ID 3d5aead9e15d4e0c5b531068cbc63c6969e4fb62 # Parent a119153ca777374d362d55a9ea8c48826fb40638 scripts: add sed expression to apply when renumbering patches Some patchsets have superfluous members in their names (eg. the ones coming from Gentoo), so it can come in handy to pass a sed RE to strip them out of the final patch name. Also add a 'fake' mode, where the command will only be printed and not executed, so we can check beforehand if the rename will be OK. diff -r a119153ca777 -r 3d5aead9e15d scripts/patch-renumber.sh --- a/scripts/patch-renumber.sh Tue Oct 27 18:54:29 2009 +0100 +++ b/scripts/patch-renumber.sh Tue Oct 27 19:34:13 2009 +0100 @@ -9,33 +9,45 @@ doUsage() { cat <<_EOF_ -Usage: ${myname} - Will renumber all patches found in , starting at , and with - an increment of - Eg.: patch-renumber patches/gcc/4.3.1 100 10 +Usage: ${myname} [sed_re] + Will renumber all patches found in 'dir', starting at 'base', and with + an increment of 'inc'. + If 'sed_re' is given, it is interpreted as a valid sed expression, and + it will be applied to the patch name. + If the environment variable FAKE is set to 'y', then the command will + only be printed, and not executed (so you can check beforehand). + Eg.: + patch-renumber.sh patches/gcc/4.3.1 100 10 + patch-renumber.sh patches/gcc/4.2.4 100 10 's/(all[_-])*(gcc[-_])*//;' _EOF_ } -[ $# -eq 3 ] || { doUsage; exit 1; } +[ $# -lt 3 -o $# -gt 4 ] && { doUsage; exit 1; } [ -d "${1}" ] || { doUsage; exit 1; } dir="${1}" cpt="${2}" inc="${3}" +sed_re="${4}" case "$(LC_ALL=C hg id "${dir}" 2>/dev/null)" in - "") CMD="mv -v";; - *) CMD="hg mv";; + "") CMD="";; + *) CMD="hg";; esac -for p in "${dir}"/*.patch; do +if [ "${FAKE}" = "y" ]; then + CMD="echo ${CMD}" +fi + +for p in "${dir}"/*.patch*; do [ -e "${p}" ] || { echo "No such file '${p}'"; exit 1; } - newname="$(printf "%03d-%s" \ - "${cpt}" \ - "$(basename "${p}" \ - |"${sed}" -r -e 's/^[[:digit:]]+[-_]//' \ - )" \ + newname="$(printf "%03d-%s" \ + "${cpt}" \ + "$( basename "${p}" \ + |"${sed}" -r -e 's/^[[:digit:]]+[-_]//' \ + -e "${sed_re}" \ + )" \ )" - [ "${p}" = "${dir}/${newname}" ] || ${CMD} "${p}" "${dir}/${newname}" + [ "${p}" = "${dir}/${newname}" ] || ${CMD} mv -v "${p}" "${dir}/${newname}" cpt=$((cpt+inc)) done