-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·133 lines (112 loc) · 2.54 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·133 lines (112 loc) · 2.54 KB
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
128
129
130
131
132
#!/bin/bash
install_tildewiki()
{
[[ $(id -u) != 0 ]] && noroot_die "I can't be installed unless this is run as root"
display_logo
echo
echo Building TildeWiki ...
go clean
go build
echo Creating user/group ...
setup_usergrp
echo Copying files ...
copy_files
install_startup_script
echo Cleaning up ...
go clean
cat > /dev/stdout << EOF
TildeWiki data has been installed to
/usr/local/tildewiki
You may now feel free to add content!
To start TildeWiki, run:
/usr/local/bin/tildewiki
EOF
}
noroot_die()
{
echo
echo -e "${1:-"Error"}" >&2
exit 1
}
setup_usergrp()
{
adduser --home /usr/local/tildewiki --system --group tildewiki
}
copy_files()
{
mkdir -p /usr/local/tildewiki/
cp ./tildewiki /usr/local/tildewiki/
cp -r pages /usr/local/tildewiki/
cp -r assets /usr/local/tildewiki/
cp tildewiki.yaml /usr/local/tildewiki/
chown -R tildewiki:tildewiki /usr/local/tildewiki
}
install_startup_script()
{
cat > /usr/local/bin/tildewiki << EOF
#!/usr/bin/env bash
error_exit() {
echo -e "\${1:-"Unknown Error"}" >&2
exit 1
}
[[ \$(id -u) != 0 ]] && error_exit "I can't daemonize unless I'm run as root :("
/usr/sbin/daemonize -c /usr/local/tildewiki -u tildewiki /usr/local/tildewiki/tildewiki
EOF
chmod 755 /usr/local/bin/tildewiki
}
display_logo()
{
cat > /dev/stdout << EOF
__ _ __ __ _ __ _
/ /_(_) /___/ /__ _ __(_) /__(_)
/ __/ / / __ / _ \ | /| / / / //_/ /
/ /_/ / / /_/ / __/ |/ |/ / / ,< / /
\__/_/_/\__,_/\___/|__/|__/_/_/|_/_/
:: TildeWiki v0.6.4 ::
(c)2019 Ben Morrison (gbmor)
GPL v3
https://github.com/gbmor/tildewiki
All Contributions Appreciated!
EOF
}
uninstall_tildewiki()
{
[[ $(id -u) != 0 ]] && noroot_die "I can't be uninstalled unless this is run as root"
display_logo
echo
echo Removing files ...
rm -rf /usr/local/tildewiki
rm -f /usr/local/bin/tildewiki
echo Removing user/group ...
userdel tildewiki
echo TildeWiki successfully uninstalled!
echo
}
display_help()
{
display_logo
cat >/dev/stdout<<EOF
TildeWiki Installation Script
install | Installs TildeWiki data to /usr/local/tildewiki
Places a start-up script at /usr/local/bin/tildewiki
uninstall | Removes TildeWiki from the system
help, -h | Displays this message
EOF
}
case "$1" in
install)
install_tildewiki
;;
uninstall)
uninstall_tildewiki
;;
help)
display_help
;;
-h)
display_help
;;
*)
display_help
;;
esac