summarylogtreecommitdiffstats
path: root/upgrade.sh
blob: 592faaee7ae139eedffc97d64f877e2b4dca9992 (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
#!/bin/bash
set

TMP=$(mktemp -d)
UPDATE_PATH=$(find /opt/crashplan/upgrade/ -mindepth 1 -maxdepth 1 -type d -print | tail -n1)

if [[ -z ${UPDATE_PATH} ]]; then
  echo "False Trigger of update script"
  exit 1
fi

if [[ -z $USER ]]; then
  USER=root
fi

systemctl stop crashplan-pro.service
cp /opt/crashplan/bin/upgrade.sh ${TMP}/upgrade.sh

echo "Editing ${UPDATE_PATH}/install.sh"

# This used to be set to an odd locale otherwise
echo "LC_ALL=$LANG" > ${UPDATE_PATH}/run.conf

# First correct the defaults to match our system
/usr/bin/sed -i  's/^PARENT_DIR=$/PARENT_DIR=\/opt/g' ${UPDATE_PATH}/install.sh
# /usr/bin/sed -i  's/^APP_DIR=$/APP_DIR=\/opt\/crashplan/g' ${UPDATE_PATH}/install.sh
/usr/bin/sed -i  's/^APP_DIR=$/APP_DIR=\/opt/g' ${UPDATE_PATH}/install.sh
/usr/bin/sed -i  's/^BIN_DIR=$/BIN_DIR=\/opt\/crashplan\/bin/g' ${UPDATE_PATH}/install.sh

/usr/bin/sed -i  's/^MANIFEST_DIR=$/MANIFEST_DIR=\/opt\/crashplan\/manifest/g' ${UPDATE_PATH}/install.sh
/usr/bin/sed -i  's/^APP_BASENAME=.*$/APP_BASENAME="CrashPlan"/g' ${UPDATE_PATH}/install.sh

/usr/bin/sed -i '/^resolve_native_libraries/ s/./#&/' ${UPDATE_PATH}/install.sh
/usr/bin/sed -i '/^install_service_script/ s/./#&/' ${UPDATE_PATH}/install.sh
/usr/bin/sed -i '/^install_launcher/ s/./#&/' ${UPDATE_PATH}/install.sh
/usr/bin/sed -i '/^start_service/ s/./#&/' ${UPDATE_PATH}/install.sh
/usr/bin/sed -i '/^prompt_to_start_desktop/ s/./#&/' ${UPDATE_PATH}/install.sh

# And the uninstall section
/usr/bin/sed -i '/^[[:blank:]]*verify_target_user_dir/ s/./:#&/' ${UPDATE_PATH}/uninstall.sh
/usr/bin/sed -i '/^[[:blank:]]*remove_desktop_launchers/ s/./#&/' ${UPDATE_PATH}/uninstall.sh
/usr/bin/sed -i '/^[[:blank:]]*remove_electron_configs/ s/./#&/' ${UPDATE_PATH}/uninstall.sh
/usr/bin/sed -i '/^[[:blank:]]*strip_keys_from_indentity_file/ s/./#&/' ${UPDATE_PATH}/uninstall.sh

echo "Installing update"
set +e
chmod +x ${UPDATE_PATH}/install.sh
chmod +x ${UPDATE_PATH}/uninstall.sh
cd ${UPDATE_PATH} && ${UPDATE_PATH}/install.sh -q -v -u $USER

set -e
cp ${TMP}/upgrade.sh /opt/crashplan/bin/upgrade.sh

echo "Amending installed files"
install -D -m 755 ${UPDATE_PATH}/scripts/desktop.sh /opt/crashplan/bin/desktop.sh
install -D -m 755 ${UPDATE_PATH}/scripts/service.sh /opt/crashplan/bin/service.sh

echo "LC_ALL=$LANG" > /opt/crashplan/bin/run.conf

# Rebuild the additional steps
ln -sf "/opt/crashplan/bin/Code42Service" /opt/crashplan/bin/CrashPlanService
ln -sf "/opt/crashplan/bin/desktop.sh" /opt/crashplan/bin/CrashPlanDesktop
ln -sf "/opt/crashplan/bin/service.sh" /opt/crashplan/bin/CrashPlanEngine

rm -rf ${TMP}
rm -rf /opt/crashplan/upgrade/*

systemctl start crashplan-pro.service
echo "Done!"