-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrelease.sh
executable file
·52 lines (47 loc) · 928 Bytes
/
release.sh
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
#!/bin/sh
#
# release.sh: script to roll a release tarball.
# copyright (c) 2006-2013 Emil Mikulic.
#
# This is for developer use only and lives in the git repo but
# shouldn't end up in a tarball.
#
if [ $# -ne 1 ]; then
echo "usage: $0 1.123" >&2
exit 1
fi
NAME=darkhttpd
VERSION="$1"
files="\
Makefile \
darkhttpd.c \
README \
"
say() {
echo ==\> "$@" >&2
}
run() {
say "$@"
"$@" || { say ERROR!; exit 1; }
}
PKG=$NAME-$VERSION
say releasing $PKG
devel/clang-warns
devel/warns
# TODO: checker, tests
if git status --porcelain | egrep -v '^\?\?' -q; then
say ERROR: uncommitted changes:
git status
exit 1
fi
run mkdir $PKG
run cp -r $files $PKG/.
sed -r -e \
'/pkgname\[\]\s+= "/s/"darkhttpd\/[^"]+"/"'$NAME'\/'$VERSION'"/' \
darkhttpd.c > $PKG/darkhttpd.c || { echo sed failed; exit 1; }
# package it up
run tar chof $PKG.tar $PKG
run bzip2 -9vv $PKG.tar
say output:
ls -l $PKG.tar.bz2
say FINISHED!