scripts/patch-renumber.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jun 22 21:53:09 2009 +0200 (2009-06-22)
changeset 1416 c9151c9ace1c
parent 1175 417b32da90bf
child 1577 c774b2cc7863
permissions -rwxr-xr-x
Check paths sanity before they get used.

Don't use the PATHs before they get checked for sanity.
     1 #!/bin/sh
     2 # Yes, this intends to be a true POSIX script file.
     3 set -e
     4 
     5 myname="$0"
     6 
     7 # Parse the tools' paths configuration
     8 . "paths.mk"
     9 
    10 doUsage() {
    11   cat <<_EOF_
    12 Usage: ${myname} <dir> <base> <inc>
    13     Will renumber all patches found in <dir>, starting at <base>, and with
    14     an increment of <inc>
    15     Eg.: patch-renumber patches/gcc/4.3.1 100 10
    16 _EOF_
    17 }
    18 
    19 [ $# -eq 3 ] || { doUsage; exit 1; }
    20 [ -d "${1}" ] || { doUsage; exit 1; }
    21 
    22 dir="${1}"
    23 cpt="${2}"
    24 inc="${3}"
    25 
    26 case "$(LC_ALL=C svnversion "${dir}" 2>/dev/null)" in
    27     exported)   CMD="mv -v";;
    28     *)          CMD="svn mv";;
    29 esac
    30 
    31 for p in "${dir}"/*.patch; do
    32     [ -e "${p}" ] || { echo "No such file '${p}'"; exit 1; }
    33     newname="$(printf "%03d-%s"                                 \
    34                       "${cpt}"                                  \
    35                       "$(basename "${p}"                        \
    36                         |"${sed}" -r -e 's/^[[:digit:]]+[-_]//' \
    37                        )"                                       \
    38               )"
    39     [ "${p}" = "${dir}/${newname}" ] || ${CMD} "${p}" "${dir}/${newname}"
    40     cpt=$((cpt+inc))
    41 done