[Intel-gfx] [PATCH v3 maintainer-tools] frob-patch-rank: A little script to batch renaming patch files
Jani Nikula
jani.nikula at linux.intel.com
Tue Jun 17 12:09:32 CEST 2014
On Tue, 17 Jun 2014, Damien Lespiau <damien.lespiau at intel.com> wrote:
> The "usage" text should explain it all. I found, in my quilt series
> handling endeavours, that I wanted to be able to shift the prefix
> numbers of a patch series.
>
> v2: Use heredoc for usage string, fix second example, use mv -i (Jani)
> v3: Don't use a fancy read for usage() (Jani)
> Collect the files to rename in a first pass, or the renaming process
> can interfere with listing the next files to rename
>
> Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
> ---
> frob-patch-rank | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 59 insertions(+)
> create mode 100755 frob-patch-rank
>
> diff --git a/frob-patch-rank b/frob-patch-rank
> new file mode 100755
> index 0000000..c791f8d
> --- /dev/null
> +++ b/frob-patch-rank
> @@ -0,0 +1,59 @@
> +#!/bin/sh
I think you have some bashisms in there, so could reflect that here, but
otherwise LGTM.
Jani.
> +set -e
> +
> +script=$(basename $0)
> +
> +function usage() {
> + cat << EOU
> +Usage: $script start end expr
> +
> + Frob patches.
> +
> + This tiny script renames "git format-patch" patches by executing 'expr'
> + on the number that prefix the patch file, but only if the patch file name
> + starts with a number in ['start','end'].
> +
> +Examples:
> + $ ls *patch
> + 0008-Super-patch.patch
> + 0009-Mega-patch.patch
> + $ $script 8 9 -7
> + $ ls *patch
> + 0001-Super-patch.patch
> + 0002-Mega-patch.patch
> +
> + $ ls *patch
> + 0117-Super-patch.patch
> + 0118-Mega-patch.patch
> + $ $script 117 118 +900 -17
> + $ ls *patch
> + 1000-Super-patch.patch
> + 1001-Mega-patch.patch
> +EOU
> +}
> +
> +[ $# -ge 3 ] || {
> + usage
> + exit 1
> +}
> +
> +start=$1
> +end=$2
> +shift 2
> +op=$*
> +
> +for i in $(seq $start $end); do
> + prefix=$(printf "%04d" $i)
> + files="$files $(ls $prefix-*.patch)"
> +done
> +
> +for f in $files; do
> + prefix=${f:0:4}
> + base=${f#$prefix-}
> +
> + rank=$((10#$prefix)) # don't interpret the leading 0 as base 8
> + ((n=$rank $op))
> +
> + new_prefix=$(printf "%04d" $n)
> + mv $prefix-$base $new_prefix-$base
> +done
> --
> 1.8.3.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list