scripts/patch-renumber.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Dec 22 18:21:51 2008 +0000 (2008-12-22)
changeset 1105 3ba2a43353df
parent 756 63d3f428f302
child 1175 417b32da90bf
permissions -rwxr-xr-x
Rationalise ./configure
- borrow a lot of ideas from Michael ABBOTT ( http://sourceware.org/ml/crossgcc/2008-12/msg00030.html )
- should be conforming to POSIX 1003.1-2008, non compliance due to bashsims is to be considered a bug
- as a result, it now works with dash
- make a little easier to read in some places
- enforce 4-space indentation
- get rid of futile 'return $?'
- quote all variables assignments
- save and restore IFS prior to and after using alternate values
- simplify the TOOLS_TO_CHECK listing

What's left:
- provide a mean to actually _compare_ version numbers
- change the TOOLS_TO_CHECK pattern style to be able to use '|' in regexp

/trunk/configure | 243 127 116 0 ++++++++++++++++++++++++++++++++------------------------------
1 file changed, 127 insertions(+), 116 deletions(-)
     1 #!/bin/sh
     2 # Yes, this intends to be a true POSIX script file.
     3 
     4 myname="$0"
     5 
     6 doUsage() {
     7   cat <<_EOF_
     8 Usage: ${myname} <dir> <base> <inc>
     9     Will renumber all patches found in <dir>, starting at <base>, and with
    10     an increment of <inc>
    11     Eg.: patch-renumber patches/gcc/4.3.1 100 10
    12 _EOF_
    13 }
    14 
    15 [ $# -eq 3 ] || { doUsage; exit 1; }
    16 [ -d "${1}" ] || { doUsage; exit 1; }
    17 
    18 dir="${1}"
    19 cpt="${2}"
    20 inc="${3}"
    21 
    22 case $(LC_ALL=C svnversion 2>/dev/null) in
    23     exported)   CMD="mv -v";;
    24     *)          CMD="svn mv";;
    25 esac
    26 
    27 for p in "${dir}"/*.patch; do
    28     [ -e "${p}" ] || { echo "No such file '${p}'"; exit 1; }
    29     newname="$(printf "%03d" ${cpt})-$(basename "${p}" |sed -r -e 's/^[[:digit:]]{3}-//')"
    30     [ "${p}" = "${dir}/${newname}" ] || ${CMD} "${p}" "${dir}/${newname}"
    31     cpt=$((cpt+inc))
    32 done