summaryrefslogtreecommitdiff
path: root/STLinux/stlinux_reset_tags.sh
blob: 0952d6d0fc8a9bb069037d9b8921cb81d5ebfcda (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
#!/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