diff options
Diffstat (limited to 'STLinux/stlinux_reset_tags.sh')
-rwxr-xr-x | STLinux/stlinux_reset_tags.sh | 36 |
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 + |