about summary refs log tree commit diff stats
path: root/lib/updver
blob: f2aea5c634ad221cfdec29c578f07ea72d7c789a (plain) (blame)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/sh

die()
{
	echo "$*" 2>&1
	exit 1
}

test "$#" -eq 2 || die "Usage: updver [library] [version]"

library=$1
dir=${library}0

vv=$(printf '%s\n' "$2" | sed 's/v//')

major=$(printf '%s\n' "$vv" | sed 's/\..*//')
minor=$(printf '%s\n' "$vv" | sed 's/[^.]*\.\([^.]*\)\..*/\1/')
patch=$(printf '%s\n' "$vv" | sed 's/.*\.//')

vs="$major.$minor.$patch"

oldhdr=$(head -1 "$dir"/NEWS)

msgfile=$(mktemp)

printf '%s (%s)\n\n' "$vs" "$(date +'%Y.%m.%d')" > "$msgfile"
cat "$dir"/NEWS >> "$msgfile"

test -n "$EDITOR" || die 'missing $EDITOR env var'
$EDITOR "$msgfile"

printf 'Ok? (y/n) '
read -r ok
case "$ok" in
y|Y)	;;
*)	die "Aborted. (File is $msgfile.)" ;;
esac

cp "$msgfile" "$dir/"NEWS
echo "/version/c
version       = \"$vs\"
.
p
wq" | ed -s "$dir/$library".nimble

echo "/Major/s/[0-9]*$/$major/
/Minor/s/[0-9]*$/$minor/
/Patch/s/[0-9]*$/$patch/
g/.*/p
wq" | ed -s "$dir/$library"/version.nim

git add .
git commit -m "Version $vs"

tmp2=$(mktemp)

while read line
do	if test "$line" = "$oldhdr"; then break; fi
	printf '%s\n' "$line"
done <"$dir/"NEWS >"$tmp2"

git tag -faeF "$tmp2" "v$vs"