public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH maintainer-tools] frob-patch-rank: A little script to batch renaming patch files
@ 2014-06-10 11:45 Damien Lespiau
  2014-06-10 11:57 ` Jani Nikula
  0 siblings, 1 reply; 7+ messages in thread
From: Damien Lespiau @ 2014-06-10 11:45 UTC (permalink / raw)
  To: intel-gfx

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.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 frob-patch-rank | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100755 frob-patch-rank

diff --git a/frob-patch-rank b/frob-patch-rank
new file mode 100755
index 0000000..4be42e5
--- /dev/null
+++ b/frob-patch-rank
@@ -0,0 +1,47 @@
+#!/bin/sh
+set -e
+
+script=$(basename $0)
+[ $# -ge 3 ] || {
+	echo "Usage: $script start end expr"
+	echo
+	echo "  Frob patches."
+	echo
+	echo "  This tiny script renames \"git format-patch\" patches by executing 'expr'"
+	echo "  on the number that prefix the patch file, but only if the patch file name "
+	echo "  starts with a number in ['start','end']."
+	echo
+	echo "Examples:"
+	echo "  $ ls *patch"
+	echo "  0008-Super-patch.patch"
+	echo "  0009-Mega-patch.patch"
+	echo "  $ $script 8 9 -7"
+	echo "  $ ls *patch"
+	echo "  0001-Super-patch.patch"
+	echo "  0002-Mega-patch.patch"
+	echo
+	echo "Examples:"
+	echo "  $ ls *patch"
+	echo "  0117-Super-patch.patch"
+	echo "  0118-Mega-patch.patch"
+	echo "  $ $script 8 9 +900 -17"
+	echo "  $ ls *patch"
+	echo "  1000-Super-patch.patch"
+	echo "  1001-Mega-patch.patch"
+	exit 1
+}
+
+start=$1
+end=$2
+shift 2
+op=$*
+
+for i in $(seq $start $end); do
+	prefix=$(printf "%04d" $i)
+	for f in $(ls $prefix-*.patch); do
+		base=${f#$prefix-}
+		((n=$i $op))
+		new_prefix=$(printf "%04d" $n)
+		mv $prefix-$base $new_prefix-$base
+	done
+done
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH maintainer-tools] frob-patch-rank: A little script to batch renaming patch files
  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
  0 siblings, 1 reply; 7+ messages in thread
From: Jani Nikula @ 2014-06-10 11:57 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx

On Tue, 10 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.
>
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
>  frob-patch-rank | 47 +++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
>  create mode 100755 frob-patch-rank
>
> diff --git a/frob-patch-rank b/frob-patch-rank
> new file mode 100755
> index 0000000..4be42e5
> --- /dev/null
> +++ b/frob-patch-rank
> @@ -0,0 +1,47 @@
> +#!/bin/sh
> +set -e
> +
> +script=$(basename $0)
> +[ $# -ge 3 ] || {
> +	echo "Usage: $script start end expr"
> +	echo
> +	echo "  Frob patches."
> +	echo
> +	echo "  This tiny script renames \"git format-patch\" patches by executing 'expr'"
> +	echo "  on the number that prefix the patch file, but only if the patch file name "
> +	echo "  starts with a number in ['start','end']."
> +	echo
> +	echo "Examples:"
> +	echo "  $ ls *patch"
> +	echo "  0008-Super-patch.patch"
> +	echo "  0009-Mega-patch.patch"
> +	echo "  $ $script 8 9 -7"
> +	echo "  $ ls *patch"
> +	echo "  0001-Super-patch.patch"
> +	echo "  0002-Mega-patch.patch"
> +	echo
> +	echo "Examples:"
> +	echo "  $ ls *patch"
> +	echo "  0117-Super-patch.patch"
> +	echo "  0118-Mega-patch.patch"
> +	echo "  $ $script 8 9 +900 -17"

I was scratching my head for a while with this example. It's wrong isn't
it?

The help could benefit from a "here" document.

> +	echo "  $ ls *patch"
> +	echo "  1000-Super-patch.patch"
> +	echo "  1001-Mega-patch.patch"
> +	exit 1
> +}
> +
> +start=$1
> +end=$2
> +shift 2
> +op=$*
> +
> +for i in $(seq $start $end); do
> +	prefix=$(printf "%04d" $i)
> +	for f in $(ls $prefix-*.patch); do
> +		base=${f#$prefix-}
> +		((n=$i $op))
> +		new_prefix=$(printf "%04d" $n)
> +		mv $prefix-$base $new_prefix-$base

mv -i just in case?

BR,
Jani.

> +	done
> +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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 maintainer-tools] frob-patch-rank: A little script to batch renaming patch files
  2014-06-10 11:57 ` Jani Nikula
@ 2014-06-10 12:46   ` Damien Lespiau
  2014-06-13 10:00     ` Jani Nikula
  0 siblings, 1 reply; 7+ messages in thread
From: Damien Lespiau @ 2014-06-10 12:46 UTC (permalink / raw)
  To: intel-gfx

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)

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
---
 frob-patch-rank | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100755 frob-patch-rank

diff --git a/frob-patch-rank b/frob-patch-rank
new file mode 100755
index 0000000..797774e
--- /dev/null
+++ b/frob-patch-rank
@@ -0,0 +1,51 @@
+#!/bin/sh
+set -e
+
+script=$(basename $0)
+
+read -r -d '' usage << EOU || true
+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 ] || {
+	echo "$usage"
+	exit 1
+}
+
+start=$1
+end=$2
+shift 2
+op=$*
+
+for i in $(seq $start $end); do
+	prefix=$(printf "%04d" $i)
+	for f in $(ls $prefix-*.patch); do
+		base=${f#$prefix-}
+		((n=$i $op))
+		new_prefix=$(printf "%04d" $n)
+		mv -i $prefix-$base $new_prefix-$base
+	done
+done
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 maintainer-tools] frob-patch-rank: A little script to batch renaming patch files
  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
  0 siblings, 1 reply; 7+ messages in thread
From: Jani Nikula @ 2014-06-13 10:00 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx

On Tue, 10 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)
>
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
>  frob-patch-rank | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 51 insertions(+)
>  create mode 100755 frob-patch-rank
>
> diff --git a/frob-patch-rank b/frob-patch-rank
> new file mode 100755
> index 0000000..797774e
> --- /dev/null
> +++ b/frob-patch-rank
> @@ -0,0 +1,51 @@
> +#!/bin/sh
> +set -e
> +
> +script=$(basename $0)
> +
> +read -r -d '' usage << EOU || true

./frob-patch-rank: 6: read: Illegal option -d

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Feb 19 14:13 /bin/sh -> dash

how about just 

usage()
{
	cat << EOF
...
EOF
}

Sorry for causing you all this trouble... :(


Jani.



> +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 ] || {
> +	echo "$usage"
> +	exit 1
> +}
> +
> +start=$1
> +end=$2
> +shift 2
> +op=$*
> +
> +for i in $(seq $start $end); do
> +	prefix=$(printf "%04d" $i)
> +	for f in $(ls $prefix-*.patch); do
> +		base=${f#$prefix-}
> +		((n=$i $op))
> +		new_prefix=$(printf "%04d" $n)
> +		mv -i $prefix-$base $new_prefix-$base
> +	done
> +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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v3 maintainer-tools] frob-patch-rank: A little script to batch renaming patch files
  2014-06-13 10:00     ` Jani Nikula
@ 2014-06-16 23:36       ` Damien Lespiau
  2014-06-17 10:09         ` Jani Nikula
  0 siblings, 1 reply; 7+ messages in thread
From: Damien Lespiau @ 2014-06-16 23:36 UTC (permalink / raw)
  To: intel-gfx

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
+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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 maintainer-tools] frob-patch-rank: A little script to batch renaming patch files
  2014-06-16 23:36       ` [PATCH v3 " Damien Lespiau
@ 2014-06-17 10:09         ` Jani Nikula
  2014-06-17 10:23           ` [PATCH v4 " Damien Lespiau
  0 siblings, 1 reply; 7+ messages in thread
From: Jani Nikula @ 2014-06-17 10:09 UTC (permalink / raw)
  To: Damien Lespiau, intel-gfx

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v4 maintainer-tools] frob-patch-rank: A little script to batch renaming patch files
  2014-06-17 10:09         ` Jani Nikula
@ 2014-06-17 10:23           ` Damien Lespiau
  0 siblings, 0 replies; 7+ messages in thread
From: Damien Lespiau @ 2014-06-17 10:23 UTC (permalink / raw)
  To: intel-gfx

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
v4: Require bash (Jani)

Looks-good-to: Jani Nikula <jani.nikula@linux.intel.com>
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..0239c76
--- /dev/null
+++ b/frob-patch-rank
@@ -0,0 +1,59 @@
+#!/bin/bash
+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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-06-17 10:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2014-06-17 10:23           ` [PATCH v4 " Damien Lespiau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox