* [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