summaryrefslogtreecommitdiff
path: root/STLinux/stlinux_reset_tags.sh
diff options
context:
space:
mode:
Diffstat (limited to 'STLinux/stlinux_reset_tags.sh')
-rwxr-xr-xSTLinux/stlinux_reset_tags.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/STLinux/stlinux_reset_tags.sh b/STLinux/stlinux_reset_tags.sh
new file mode 100755
index 0000000..0952d6d
--- /dev/null
+++ b/STLinux/stlinux_reset_tags.sh
@@ -0,0 +1,36 @@
+#!/bin/zsh
+
+FILE=$1
+
+usage()
+{
+ cat << EOF
+usage: $0:t <FILE.spec>"
+ Where FILE.spec is a .spec file with list of patches and of kernel releases
+ To generate this FILE.spec, you should take a look to stlinux_generate_spec_file.sh
+EOF
+}
+
+if [ $# -ne 1 -o ! -f $FILE ]
+then
+ usage
+ exit 42 # Yes, 42.
+fi
+
+local tag commit release
+
+for tag in $(grep -i "^# Kernel [0-9]\+ released here$" $FILE | sed 's/^# Kernel \([0-9]*\) released here$/\1/')
+do
+ release=$(
+ grep -i "^# Kernel $tag released here$" $FILE -B1 |\
+ head -n1 |\
+ sed 's/^Patch\([0-9]*\): /\\[Patch \\#\1\\].* /'
+ )
+ commit=$(
+ git-log --grep="$release" --pretty=oneline |\
+ cut -c1-40
+ )
+ echo "#$tag -- $(git-log --grep="$release" | grep "$release")"
+ git-tag $tag $commit
+done
+