-
Notifications
You must be signed in to change notification settings - Fork 1
/
install-to-system
executable file
·52 lines (44 loc) · 1.1 KB
/
install-to-system
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
#!/usr/bin/env bash
set -eu
# assumes:
# groupadd library
# groupadd morrigan
function yes_or_no {
while true; do
read -p "$* [y/n]: " yn
case $yn in
[Yy]*) return 0 ;;
[Nn]*) echo "Aborted" ; return 1 ;;
esac
done
}
r="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
jar="$r/target/morrigan-1-SNAPSHOT-jar-with-dependencies.jar"
if ! [ -e "$jar" ] ; then
echo "Not found: $jar"
echo 'Maybe try building with: mvn clean package'
exit 1
fi
echo "Using jar: $jar"
insdir="/opt/morrigan"
echo "Install dir: $insdir"
mkdir -vp "$insdir"
cp -v "$jar" "$insdir/morrigan.jar"
homedir="$insdir/home"
mkdir -vp "$homedir"
chgrp -v 'morrigan' "$homedir"
chmod -v 770 "$homedir"
chmod g+s "$homedir"
unit_src="$r/systemd/morrigan.service"
unit_etc='/etc/systemd/system/morrigan.service'
if [ -e "$unit_etc" ] ; then
if ! diff "$unit_src" "$unit_etc" ; then
yes_or_no "Installed unit file differs, continue?" || exit 1
fi
else
cp -v "$unit_src" "$unit_etc"
fi
systemctl daemon-reload
systemctl enable morrigan
systemctl restart morrigan
systemctl status morrigan