-
Notifications
You must be signed in to change notification settings - Fork 2
/
util
executable file
·112 lines (107 loc) · 2.48 KB
/
util
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/bin/sh
# vim: sw=2
name=alms
host=login.eecs.northwestern.edu
remote=public_html/pubs/$name
extensions=src/extensions.txt
version="`awk '$0 ~ /^VERSION *= / { print $3 }' Makefile`"
assert_has_argument () {
local argument expected
argument="$1"; shift
expected="$1"; shift
if [ -z "$argument" ]; then
echo "$0 $cmd: $expected expected\nUsage: $0 $cmd $@" >&2
exit 1
fi
}
if [ -z "$1" ]; then
set showVersion
fi
while [ -n "$1" ]; do
cmd="$1"; shift
case "$cmd" in
release)
assert_has_argument "$1" 'version number' VERSION
ver="$1"; shift
set version "$ver" clean dist send link "$@"
;;
hackage-check)
cabal upload -c $name-$version.tar.gz
;;
hackage-upload)
cabal upload $name-$version.tar.gz
;;
hackage)
set dist hackage-upload "$@"
;;
clean)
rm $name*.tar.gz
;;
dist)
make dist
;;
send)
scp -p $name-$version.tar.gz $host:$remote/
;;
link)
ssh $host "cd $remote;
DISPLAY='' ex -c '/$name-[0-9.]*[.]tar[.]gz/s/-[0-9.]*[.]tar/-$version.tar/|:wq' index.html;
rm $name.tar.gz;
ln -s '$name-$version.tar.gz' $name.tar.gz"
;;
edit)
ssh $host -t vim $remote/index.html
;;
extensions)
perl -pe 's/\n/ /; s/\b\w+\b/-X$&/' $extensions
;;
ghci)
ghci -isrc `$0 extensions` "$@"
set --
;;
mv)
assert_has_argument "$1" 'source path' SRC DST
assert_has_argument "$2" 'destination path' SRC DST
src="$1"; shift
dst="$1"; shift
git mv "$src" "$dst" &&
mv "$dst" "$src" &&
svn mv "$src" "$dst"
;;
ci)
git log svn-head..HEAD | svn ci -F -
git tag -f svn-head
;;
ci-m)
assert_has_argument "$1" 'commit message' MESSAGE
msg="$1"; shift
git ca -m "$msg"
set ci "$@"
;;
add)
assert_has_argument "$1" 'something to add' PATH...
git add "$@"
svn add "$@"
set --
;;
version)
assert_has_argument "$1" 'version number' VERSION
version="$1"; shift
git stash
ex -c "/^VERSION *=/s/=.*/= $version/|:wq" Makefile
make $name.cabal
git add Makefile $name.cabal
git commit -m "version bump: $version"
git tag "$version"
git stash apply
set showVersion "$@"
;;
showVersion)
echo $version
;;
*)
echo "What does '$cmd' mean?" >&2
exit 1
;;
esac
done