-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathupgrade-udo20
executable file
·62 lines (53 loc) · 1.71 KB
/
upgrade-udo20
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
#!/usr/bin/env bash
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-b | --branch)
UDO_BRANCH="$2"
shift # past argument
shift # past value
;;
esac
done
[[ -z "$UDO_BRANCH" ]] && UDO_BRANCH="udo20"
echo "Pulling latest version for $UDO_BRANCH"
docker pull "moddengine/moddengine:${UDO_BRANCH}-latest"
ME_IMAGE_ID=$(docker image ls moddengine/moddengine:udo20-latest --format '{{.ID}}'|head -n1)
ME_LATEST_VER=$(docker image inspect --format '{{json .}}' "$ME_IMAGE_ID" |
php -d display_errors=on -r "echo(json_decode(file_get_contents('php://stdin'), true)['Config']['Labels']['org.opencontainers.image.version'] ?? '');")
if [[ -z "$ME_LATEST_VER" ]]; then
echo "Could not find latest image version, using latest image"
true
else
ME_IMAGE="v$ME_LATEST_VER"
echo "Pulling latest image for $ME_IMAGE"
docker pull "moddengine/moddengine:$ME_IMAGE"
if [[ $? -ne 0 ]]; then
echo "Unable to find image for version: $ME_IMAGE"
exit 1;
fi
fi
UPGRADE_LIST=$(
whiptail \
--title "$UDO_BRANCH Container to upgrade" \
--separate-output \
--checklist "Select Container" 20 90 14 \
$(docker ps -a --format "{{ .Names }} {{ .Image }} OFF" --filter label=au.net.udo.ver="$UDO_BRANCH" | sed s/moddengine\\/moddengine://) \
3>&1 1>&2 2>&3
)
if [[ -z "$UPGRADE_LIST" ]]; then
echo "Nothing selected"
echo "'$UPGRADE_LIST'"
exit 1
fi
for UPGRADE_NAME in $UPGRADE_LIST; do
echo Upgrade: $UPGRADE_NAME
UDO_USER=$(echo "$UPGRADE_NAME" | cut -f1 -d_)
UDO_SITE=$(echo "$UPGRADE_NAME" | cut -f2 -d_)
if [[ -z "$ME_IMAGE" ]]; then
./start-udo "$UDO_USER" -s "$UDO_SITE" -b $UDO_BRANCH
else
./start-udo "$UDO_USER" -s "$UDO_SITE" -b $UDO_BRANCH -i "$ME_IMAGE"
fi
sleep 8
done