1+ #! /bin/sh
2+
3+ : " ${WSC_SETUP_ENABLED:= " 0" } " # enable for download and unpack WSC (from https://www.woltlab.com/en/woltlab-suite-download/)
4+ : " ${WSC_VERSION:= " 6.2" } " # example: 6.1 or 6.2
5+ : " ${WSC_DEV_INSTALL_ENABLED:= " 0" } " # for an almost unattended installation (need variables_order=EGPCS in PHP config and WCFSETUP_* ENVs)
6+ : " ${DOCUMENT_ROOT:= " /var/www/html" } " # default: /var/www/html
7+
8+ if [ " $WSC_SETUP_ENABLED " -eq " 1" -a -n " $WSC_VERSION " ]; then
9+
10+ TMP_DIR=" $( mktemp -d) "
11+ # echo ">> DIR=$TMP_DIR"
12+
13+ TAGS=$(
14+ curl -sL https://api.github.com/repos/WoltLab/WCF/tags |
15+ grep ' "name"' |
16+ cut -d' "' -f4 |
17+ sed ' s/_/-/g' |
18+ grep -Ev ' (dev|Alpha)' |
19+ tr ' [:upper:]' ' [:lower:]' |
20+ sort -rV
21+ )
22+
23+ STABLE=$( echo " $TAGS " | grep -E " ^[0-9]+\.[0-9]+\.[0-9]+$" | head -n1)
24+ LATEST=$( echo " $TAGS " | head -n1)
25+ echo " >> Info (WSC Versions): stable=${STABLE} ; latest=${LATEST} "
26+ VERSION=$( echo " $TAGS " | grep -E " ^${WSC_VERSION} " | head -n1)
27+ echo " >> Selected Version: ${VERSION} "
28+
29+ # if [ -z "$(ls -A "$DOCUMENT_ROOT")" ]; then
30+ if [ ! -f " $DOCUMENT_ROOT /index.php" ]; then
31+ FILENAME=" wsc-${VERSION} .zip"
32+ echo " >> Downloading Installer-Archive (.zip)..."
33+ curl -sL -o " /${TMP_DIR} /${FILENAME} " " https://assets.woltlab.com/release/woltlab-suite-${VERSION} .zip"
34+ # echo ">> List content of Archive ..."
35+ # unzip -l "/${TMP_DIR}/${FILENAME}" | head
36+ echo " >> Unpack Archive File to ${DOCUMENT_ROOT} ..."
37+ unzip -q -j -o " /${TMP_DIR} /${FILENAME} " " upload/*" -d " ${DOCUMENT_ROOT} "
38+ if [ " $WSC_DEV_INSTALL_ENABLED " -eq " 1" ] ; then
39+ echo " >> set dev as install mode (unattended installation) ..."
40+ sed -i ' s|href="install.php"|href="install.php?dev=1"|g' " ${DOCUMENT_ROOT} /test.php"
41+ fi
42+ else
43+ echo " >> Target Folder ${DOCUMENT_ROOT} is not empty. Download & Unpacking canceled!"
44+ # ls -A ${DOCUMENT_ROOT}
45+ fi
46+ # ls -lah $TMP_DIR
47+ rm -rf " $TMP_DIR "
48+
49+ fi
0 commit comments