summaryrefslogtreecommitdiff
path: root/stlinux_reset_tags.sh
blob: e30535a792b7823759ff6c82fff8be059c67ef96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/zsh

FILE=$1
TAGPREFIX=$2

usage()
{
	cat << EOF
usage: $0:t <FILE.spec> [<TAGPREFIX>]" 
	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

	TAGPREFIX should be used to prefix the tags
EOF
}

if [ $# -lt 1 -o $# -gt 2 -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 $TAGPREFIX$tag $commit
done