blob: 26f91ef7afc13f9bb966233358aa6a4492a15c2a (
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
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
#!/bin/bash
WIKIROOT=/home/hugo/wiki/
WIKI_LIST=$(ls $WIKIROOT | grep -v html)
# A simple script for managing a vimwiki git repo.
# Allows slightly simpler edits and commits.
wiki_list=""
#
# Adds all files to git, and commits with either the arguments as
# message, or with the current time as the message.
# Assumes that PWD is a git repo.
#
function commit {
if [ $# -lt 2 ]; then
msg="$(date --rfc-email)"
else
msg="$@"
fi
git add -A
git commit -m "$msg"
}
#
# Like commit above, but ammends
#
function ammend {
if [ $# -eq 1 ]; then
git commit --amend
else
msg="$@"
git commit --amend -m "$msg"
fi
}
#
# Run function on wiki
#
function wiki_do {
wiki=$1
command=$2
pushd $WIKIROOT/$wiki
shift
case $command in
commit)
shift
commit $@
;;
ammend)
shift
ammend $@
;;
g|go)
commit $@
git push
;;
echo)
echo "-- $wiki --"
;;
*)
eval "git $@"
;;
esac
}
# == MAIN ==
#
# Parse command line options
#
while [ $# -ne 0 ]; do
case $1 in
-w|--wiki)
shift
wiki_list="$1 $wiki_list"
shift
;;
-l|--list)
shift
echo "Available Wikis:"
echo "================"
for w in $WIKI_LIST; do
echo " - $w"
done
exit
;;
-h|--help|-?)
shift
cat - <<- EOF
Wiki helper. Usage:
--help | -h :: Display this help
--list | -l :: Show available wikis
--wiki | -w <wiki> :: specify a specific wiki for operation
Default acts on all wikis.
wi commit [msg] :: Create a git commit on specified wikis
wi ammend [msg] :: Change last commit
wi g [msg] :: wi commit [msg]; wi push
wi [git-command] :: run git commands on wikis
EOF
exit
;;
*)
break
;;
esac
done
# Edit the given wiki if no further argument is given
if [ $# -eq 0 ]; then
set -- ${wiki_list:-$WIKI_LIST}
vim $WIKIROOT/$1/index.*
exit
fi
# Run given command for all wikis
for wiki in ${wiki_list:-$WIKI_LIST}; do
echo "== $wiki =="
wiki_do $wiki $@ &
done
wait
|