summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xSTLinux/stlinux_generate_spec_file.sh23
-rwxr-xr-xSTLinux/stlinux_reset_tags.sh36
2 files changed, 59 insertions, 0 deletions
diff --git a/STLinux/stlinux_generate_spec_file.sh b/STLinux/stlinux_generate_spec_file.sh
new file mode 100755
index 0000000..d39ec7c
--- /dev/null
+++ b/STLinux/stlinux_generate_spec_file.sh
@@ -0,0 +1,23 @@
+#!/bin/zsh
+
+LOG=$1
+
+usage()
+{
+ cat << EOF
+usage: $0:t <commitish>..<commitish>
+EOF
+}
+
+if [ $# -ne 1 -o -z $LOG ]
+then
+ usage
+ exit 27 # 27 ? Yes, 27.
+fi
+
+git-log --decorate $LOG |\
+grep "\[Patch\|refs/tags" |\
+sed 's/^commit ........................................ .*refs\/tags\/\([0-9]\+\)[,)].*/# Kernel \1 released here/;s/.*Patch #\([0-9]\+\)\].* Applied /Patch\1: /' |\
+grep -v "^commit " |\
+tac
+
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
+