diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2009-10-27 19:34:13 +0100 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2009-10-27 19:34:13 +0100 |
commit | d28227a914974b116391c308b114587fe023c3ab (patch) | |
tree | 841a3baf46f7a21d5f5580cf8da3d3793e96cb84 /scripts/patch-renumber.sh | |
parent | 039ee6c1253e72b75c894ebdd99d915acc35106b (diff) | |
download | crosstool-ng-d28227a914974b116391c308b114587fe023c3ab.tar.gz crosstool-ng-d28227a914974b116391c308b114587fe023c3ab.tar.bz2 crosstool-ng-d28227a914974b116391c308b114587fe023c3ab.zip |
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.
Diffstat (limited to 'scripts/patch-renumber.sh')
-rwxr-xr-x | scripts/patch-renumber.sh | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/scripts/patch-renumber.sh b/scripts/patch-renumber.sh index 7ea2aa15..95bae8fb 100755 --- a/scripts/patch-renumber.sh +++ b/scripts/patch-renumber.sh @@ -9,33 +9,45 @@ myname="$0" doUsage() { cat <<_EOF_ -Usage: ${myname} <dir> <base> <inc> - Will renumber all patches found in <dir>, starting at <base>, and with - an increment of <inc> - Eg.: patch-renumber patches/gcc/4.3.1 100 10 +Usage: ${myname} <dir> <base> <inc> [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 |