public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Damien Lespiau <damien.lespiau@intel.com>,
	intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v3 maintainer-tools] frob-patch-rank: A little	script to batch renaming patch files
Date: Tue, 17 Jun 2014 13:09:32 +0300	[thread overview]
Message-ID: <87bntrrgo3.fsf@intel.com> (raw)
In-Reply-To: <1402961815-29361-1-git-send-email-damien.lespiau@intel.com>

On Tue, 17 Jun 2014, Damien Lespiau <damien.lespiau@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@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@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center

  reply	other threads:[~2014-06-17 10:09 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-10 11:45 [PATCH maintainer-tools] frob-patch-rank: A little script to batch renaming patch files Damien Lespiau
2014-06-10 11:57 ` Jani Nikula
2014-06-10 12:46   ` [PATCH v2 " Damien Lespiau
2014-06-13 10:00     ` Jani Nikula
2014-06-16 23:36       ` [PATCH v3 " Damien Lespiau
2014-06-17 10:09         ` Jani Nikula [this message]
2014-06-17 10:23           ` [PATCH v4 " Damien Lespiau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bntrrgo3.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=damien.lespiau@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox