diff -r c774b2cc7863 -r 3d5aead9e15d scripts/patch-renumber.sh --- a/scripts/patch-renumber.sh Sat Oct 10 17:19:51 2009 +0200 +++ 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