Skip to content

Commit 8e31771

Browse files
authored
Kimai: Better Handling of Updates (backup var / env / yaml) (#2862)
* Kimai: Better Handling of Updates (backup var / env / yaml) * formatting
1 parent 7352cbc commit 8e31771

File tree

1 file changed

+53
-43
lines changed

1 file changed

+53
-43
lines changed

ct/kimai.sh

Lines changed: 53 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -20,52 +20,62 @@ color
2020
catch_errors
2121

2222
function update_script() {
23-
header_info
24-
check_container_storage
25-
check_container_resources
26-
if [[ ! -d /opt/kimai ]]; then
27-
msg_error "No ${APP} Installation Found!"
28-
exit
29-
fi
30-
RELEASE=$(curl -s https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
31-
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
32-
msg_info "Stopping Apache2"
33-
systemctl stop apache2
34-
msg_ok "Stopped Apache2"
23+
header_info
24+
check_container_storage
25+
check_container_resources
26+
if [[ ! -d /opt/kimai ]]; then
27+
msg_error "No ${APP} Installation Found!"
28+
exit
29+
fi
30+
RELEASE=$(curl -s https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
31+
BACKUP_DIR="/opt/kimai_backup"
32+
33+
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
34+
msg_info "Stopping Apache2"
35+
systemctl stop apache2
36+
msg_ok "Stopped Apache2"
3537

36-
msg_info "Updating ${APP} to ${RELEASE}"
37-
cp /opt/kimai/.env /opt/.env
38-
[ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml /opt/local.yaml
39-
rm -rf /opt/kimai
40-
wget -q "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip"
41-
unzip -q ${RELEASE}.zip
42-
mv kimai-${RELEASE} /opt/kimai
43-
mv /opt/.env /opt/kimai/.env
44-
[ -f /opt/local.yaml ] && mv /opt/local.yaml /opt/kimai/config/packages/local.yaml
45-
cd /opt/kimai
46-
$STD composer install --no-dev --optimize-autoloader
47-
$STD bin/console kimai:update
48-
chown -R :www-data .
49-
chmod -R g+r .
50-
chmod -R g+rw var/
51-
chmod -R 777 /opt/kimai/var/
52-
chown -R www-data:www-data /opt/kimai
53-
chmod -R 755 /opt/kimai
54-
echo "${RELEASE}" >/opt/${APP}_version.txt
55-
msg_ok "Updated ${APP} to ${RELEASE}"
38+
msg_info "Backing up Kimai configuration and var directory"
39+
mkdir -p "$BACKUP_DIR"
40+
[ -d /opt/kimai/var ] && cp -r /opt/kimai/var "$BACKUP_DIR/"
41+
[ -f /opt/kimai/.env ] && cp /opt/kimai/.env "$BACKUP_DIR/"
42+
[ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml "$BACKUP_DIR/"
43+
msg_ok "Backup completed"
5644

57-
msg_info "Starting Apache2"
58-
systemctl start apache2
59-
msg_ok "Started Apache2"
45+
msg_info "Updating ${APP} to ${RELEASE}"
46+
rm -rf /opt/kimai
47+
wget -q "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip"
48+
unzip -q ${RELEASE}.zip
49+
mv kimai-${RELEASE} /opt/kimai
50+
[ -d "$BACKUP_DIR/var" ] && cp -r "$BACKUP_DIR/var" /opt/kimai/
51+
[ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/
52+
[ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
53+
rm -rf "$BACKUP_DIR"
54+
cd /opt/kimai
55+
$STD composer install --no-dev --optimize-autoloader
56+
$STD bin/console kimai:update
57+
chown -R :www-data .
58+
chmod -R g+r .
59+
chmod -R g+rw var/
60+
chmod -R 777 /opt/kimai/var/
61+
chown -R www-data:www-data /opt/kimai
62+
chmod -R 755 /opt/kimai
63+
echo "${RELEASE}" >/opt/${APP}_version.txt
64+
msg_ok "Updated ${APP} to ${RELEASE}"
6065

61-
msg_info "Cleaning Up"
62-
rm -rf ${RELEASE}.zip
63-
msg_ok "Cleaned"
64-
msg_ok "Updated Successfully"
65-
else
66-
msg_ok "No update required. ${APP} is already at ${RELEASE}"
67-
fi
68-
exit
66+
msg_info "Starting Apache2"
67+
systemctl start apache2
68+
msg_ok "Started Apache2"
69+
70+
msg_info "Cleaning Up"
71+
rm -rf ${RELEASE}.zip
72+
rm -rf "$BACKUP_DIR"
73+
msg_ok "Cleaned"
74+
msg_ok "Updated Successfully"
75+
else
76+
msg_ok "No update required. ${APP} is already at ${RELEASE}"
77+
fi
78+
exit
6979
}
7080

7181
start

0 commit comments

Comments
 (0)