forked from jurkovic-nikola/OpenLinkHub
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
109 lines (92 loc) · 2.72 KB
/
install.sh
File metadata and controls
109 lines (92 loc) · 2.72 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
#!/bin/bash
set -e
USER_TO_CHECK="openlinkhub"
DIST="/etc/lsb-release"
SYSTEMD_FILE="/etc/systemd/system/OpenLinkHub.service"
PRODUCT="OpenLinkHub"
if [ ! -f $PRODUCT ]; then
echo "No binary file. Exit"
exit 0
fi
if [ -f $DIST ]; then
SYSTEMD_FILE="/etc/systemd/system/OpenLinkHub.service"
else
SYSTEMD_FILE="/usr/lib/systemd/system/OpenLinkHub.service"
fi
echo "Checking if application username $USER_TO_CHECK exists..."
if id "$USER_TO_CHECK" &>/dev/null; then
echo "Application username $USER_TO_CHECK found. Skipping username creation..."
else
echo "Application username $USER_TO_CHECK not found. Creating application username..."
sudo useradd -r "$USER_TO_CHECK" --shell=/bin/false
if id "$USER_TO_CHECK" &>/dev/null; then
echo "Application username $USER_TO_CHECK created."
if [ -f $SYSTEMD_FILE ]; then
cat > $SYSTEMD_FILE <<- EOM
[Unit]
Description=Open source interface for iCUE LINK System Hub, Corsair AIOs and Hubs
After=sleep.target
[Service]
User=$USER_TO_CHECK
Group=$USER_TO_CHECK
WorkingDirectory=/opt/$PRODUCT
ExecStart=/opt/$PRODUCT/$PRODUCT
ExecReload=/bin/kill -s HUP \$MAINPID
RestartSec=5
[Install]
WantedBy=multi-user.target
EOM
sudo systemctl daemon-reload
fi
fi
fi
if [ -f $SYSTEMD_FILE ]; then
echo "$PRODUCT is already installed. Performing upgrade"
sudo systemctl stop $PRODUCT
cp -r ../OpenLinkHub /opt
chmod -R 755 /opt/$PRODUCT/
chown -R "$USER_TO_CHECK":"$USER_TO_CHECK" /opt/$PRODUCT/
cp /opt/$PRODUCT/99-openlinkhub.rules /etc/udev/rules.d/
echo "Reloading udev..."
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo systemctl start $PRODUCT
echo "Done"
exit 0
fi
echo "Installation is running..."
cp -r ../OpenLinkHub /opt
# Permissions
echo "Setting permissions..."
chmod -R 755 /opt/$PRODUCT/
chown -R "$USER_TO_CHECK":"$USER_TO_CHECK" /opt/$PRODUCT/
# systemd file
echo "Creating systemd file..."
cat > $SYSTEMD_FILE <<- EOM
[Unit]
Description=Open source interface for iCUE LINK System Hub, Corsair AIOs and Hubs
After=sleep.target
[Service]
User=$USER_TO_CHECK
Group=$USER_TO_CHECK
WorkingDirectory=/opt/$PRODUCT
ExecStart=/opt/$PRODUCT/$PRODUCT
ExecReload=/bin/kill -s HUP \$MAINPID
RestartSec=10
[Install]
WantedBy=multi-user.target
EOM
echo "Running systemctl daemon-reload"
sudo systemctl daemon-reload
echo "Setting udev device permissions..."
sudo rm -f /etc/udev/rules.d/99-corsair*.rules
sudo cp 99-openlinkhub.rules /etc/udev/rules.d/
echo "Reloading udev..."
sudo udevadm control --reload-rules
sudo udevadm trigger
echo "Setting service to state: enabled"
sudo systemctl enable $PRODUCT
echo "Starting $PRODUCT..."
sudo systemctl start $PRODUCT
echo "Done. You can access WebUI console via: http://127.0.0.1:27003/"
exit 0