From f1f6ca3bc7729505ec85a608a8c933551d4266cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Kn=C3=B6ppler?= <6317548+theCalcaholic@users.noreply.github.com> Date: Wed, 18 Oct 2023 00:04:01 +0200 Subject: [PATCH] Rename TMPDIR environment variables to TEMPDIR to avoid overriding php temp dir. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tobias Knöppler <6317548+theCalcaholic@users.noreply.github.com> --- bin/ncp-check-version | 8 ++++---- bin/ncp-restore | 28 ++++++++++++++-------------- bin/ncp-update | 10 +++++----- bin/ncp/NETWORKING/no-ip.sh | 6 +++--- build/armbian/armbian.sh | 4 +++- build/build-SD-armbian.sh | 2 +- install.sh | 8 ++++---- 7 files changed, 34 insertions(+), 32 deletions(-) diff --git a/bin/ncp-check-version b/bin/ncp-check-version index 5755d52e..4d11c934 100755 --- a/bin/ncp-check-version +++ b/bin/ncp-check-version @@ -2,18 +2,18 @@ # update latest available version in /var/run/.ncp-latest-version -TMPDIR="$( mktemp -d /tmp/ncp-check.XXXXXX || ( echo "Failed to create temp dir. Exiting" >&2; exit 1 ) )" -trap "rm -rf \"${TMPDIR}\"; exit 0" 0 1 2 3 15 +TEMPDIR="$( mktemp -d /tmp/ncp-check.XXXXXX || ( echo "Failed to create temp dir. Exiting" >&2; exit 1 ) )" +trap "rm -rf \"${TEMPDIR}\"; exit 0" 0 1 2 3 15 BRANCH="master" { [[ -f /.dockerenv ]] || [[ -f /.docker-image ]] || [[ "$DOCKERBUILD" == 1 ]]; } && BRANCH="docker-stable" -git clone -b "$BRANCH" --depth 20 -q --bare https://github.com/nextcloud/nextcloudpi.git "$TMPDIR" || { +git clone -b "$BRANCH" --depth 20 -q --bare https://github.com/nextcloud/nextcloudpi.git "$TEMPDIR" || { echo "The git clone command failed: No connectivity to https://github.com ?" >&2 exit 1 } -cd "$TMPDIR" || exit 1 +cd "$TEMPDIR" || exit 1 VER=$( git describe --always --tags | grep -oP "v\d+\.\d+\.\d+" ) [[ -f "/usr/local/etc/instance.cfg" ]] && { diff --git a/bin/ncp-restore b/bin/ncp-restore index e671e5f7..d613fdbe 100755 --- a/bin/ncp-restore +++ b/bin/ncp-restore @@ -16,32 +16,32 @@ DIR="$( cd "$( dirname "$BACKUPFILE" )" &>/dev/null && pwd )" #abspath [[ -f "$BACKUPFILE" ]] || { echo "$BACKUPFILE not found" ; exit 1; } [[ "$DIR" =~ "$NCDIR".* ]] && { echo "Refusing to restore from $NCDIR"; exit 1; } -TMPDIR="$( mktemp -d "$( dirname "$BACKUPFILE" )"/ncp-restore.XXXXXX )" || { echo "Failed to create temp dir" >&2; exit 1; } -[[ "$(stat -fc%T "${TMPDIR}")" =~ ext|btrfs|zfs ]] || { echo "Can only restore from ext/btrfs/zfs filesystems (found '$(stat -fc%T "${TMPDIR}")" >&2; exit 1; } +TEMPDIR="$( mktemp -d "$( dirname "$BACKUPFILE" )"/ncp-restore.XXXXXX )" || { echo "Failed to create temp dir" >&2; exit 1; } +[[ "$(stat -fc%T "${TEMPDIR}")" =~ ext|btrfs|zfs ]] || { echo "Can only restore from ext/btrfs/zfs filesystems (found '$(stat -fc%T "${TEMPDIR}")" >&2; exit 1; } -TMPDIR="$( cd "$TMPDIR" &>/dev/null && pwd )" || { echo "$TMPDIR not found"; exit 1; } #abspath -cleanup(){ local RET=$?; echo "Cleanup..."; rm -rf "${TMPDIR}"; trap "" EXIT; exit $RET; } +TEMPDIR="$( cd "$TEMPDIR" &>/dev/null && pwd )" || { echo "$TEMPDIR not found"; exit 1; } #abspath +cleanup(){ local RET=$?; echo "Cleanup..."; rm -rf "${TEMPDIR}"; trap "" EXIT; exit $RET; } trap cleanup INT TERM HUP ERR EXIT -rm -rf "$TMPDIR" && mkdir -p "$TMPDIR" +rm -rf "$TEMPDIR" && mkdir -p "$TEMPDIR" [[ "$BACKUPFILE" =~ .*".tar.gz" ]] && compress_arg="-I pigz" -# CHECK FREE SPACE IN $TMPDIR +# CHECK FREE SPACE IN $TEMPDIR echo "check free space..." # allow at least ~100 extra MiB extractedsize=$(tar $compress_arg -tvf "$BACKUPFILE" | awk '{s+=$3} END{printf "%.0f", (s/1024)}') # Size of extracted files in "KB" size=$(($extractedsize + 100*1024)) -free=$( df "$TMPDIR" | tail -1 | awk '{ print $4 }' ) +free=$( df "$TEMPDIR" | tail -1 | awk '{ print $4 }' ) [ $size -ge $free ] && { - echo "free space check failed. Need $size KB in $TMPDIR"; + echo "free space check failed. Need $size KB in $TEMPDIR"; exit 1; } # EXTRACT FILES echo "extracting backup file $BACKUPFILE..." -tar $compress_arg -xf "$BACKUPFILE" -C "$TMPDIR" || exit 1 +tar $compress_arg -xf "$BACKUPFILE" -C "$TEMPDIR" || exit 1 ## SANITY CHECKS -[[ -d "$TMPDIR"/nextcloud ]] && [[ -f "$( ls "$TMPDIR"/nextcloud-sqlbkp_*.bak 2>/dev/null )" ]] || { +[[ -d "$TEMPDIR"/nextcloud ]] && [[ -f "$( ls "$TEMPDIR"/nextcloud-sqlbkp_*.bak 2>/dev/null )" ]] || { echo "invalid backup file. Abort" exit 1 } @@ -54,7 +54,7 @@ echo "restore files..." mv -T "$NCDIR/data" "$DATA_BKP_DIR/" } rm -rf "$NCDIR" -mv -T "$TMPDIR"/nextcloud "$NCDIR" || { echo "Error restoring base files"; exit 1; } +mv -T "$TEMPDIR"/nextcloud "$NCDIR" || { echo "Error restoring base files"; exit 1; } if [[ -n "$DATA_BKP_DIR" ]] then @@ -91,7 +91,7 @@ EOFMYSQL # shellcheck disable=SC2181 [ $? -ne 0 ] && { echo "Error configuring nextcloud database"; exit 1; } -mysql -u root nextcloud < "$TMPDIR"/nextcloud-sqlbkp_*.bak || { echo "Error restoring nextcloud database"; exit 1; } +mysql -u root nextcloud < "$TEMPDIR"/nextcloud-sqlbkp_*.bak || { echo "Error restoring nextcloud database"; exit 1; } ## RESTORE DATADIR @@ -105,7 +105,7 @@ cd "$NCDIR" ### INCLUDEDATA=yes situation NUMFILES=2 -if [[ $( ls "$TMPDIR" | wc -l ) -eq $NUMFILES ]]; then +if [[ $( ls "$TEMPDIR" | wc -l ) -eq $NUMFILES ]]; then [[ -e "$DATADIR" ]] && { bk_target="$DATADIR-$( date '+%FT%s' )" @@ -121,7 +121,7 @@ if [[ $( ls "$TMPDIR" | wc -l ) -eq $NUMFILES ]]; then btrfs subvolume create "$DATADIR" || exit 1 } chown www-data: "$DATADIR" - TMPDATA="$TMPDIR/$( basename "$DATADIR" )" + TMPDATA="$TEMPDIR/$( basename "$DATADIR" )" mv "$TMPDATA"/* "$TMPDATA"/.[!.]* "$DATADIR" || exit 1 rmdir "$TMPDATA" || exit 1 diff --git a/bin/ncp-update b/bin/ncp-update index 25753417..1f025784 100755 --- a/bin/ncp-update +++ b/bin/ncp-update @@ -19,18 +19,18 @@ fi BRANCH="${1:-master}" [[ "$BRANCH" != "master" ]] && echo "INFO: updating to development branch '$BRANCH'" - TMPDIR="$( mktemp -d /tmp/ncp-update.XXXXXX || ( echo "Failed to create temp dir. Exiting" >&2; exit 1 ) )" - trap 'cd /; rm -rf "${TMPDIR}"' EXIT + TEMPDIR="$( mktemp -d /tmp/ncp-update.XXXXXX || ( echo "Failed to create temp dir. Exiting" >&2; exit 1 ) )" + trap 'cd /; rm -rf "${TEMPDIR}"' EXIT echo -e "Downloading updates" - git clone --depth 20 -b "$BRANCH" -q https://github.com/nextcloud/nextcloudpi.git "$TMPDIR" || { + git clone --depth 20 -b "$BRANCH" -q https://github.com/nextcloud/nextcloudpi.git "$TEMPDIR" || { echo "No internet connectivity" exit 1 } # shellcheck disable=SC2164 [[ -f /.ncp-image ]] || { - cd "$TMPDIR" # update locally during build + cd "$TEMPDIR" # update locally during build [[ -z "$2" ]] || { git fetch origin "$2" || { @@ -44,7 +44,7 @@ fi echo -e "Performing updates" ./update.sh || exit $? - cd "$TMPDIR" || exit 1 + cd "$TEMPDIR" || exit 1 git describe --always --tags --abbrev=0 2>/dev/null | grep -qoP "v\d+\.\d+\.\d+" || git fetch --unshallow --tags -q VER=$( git describe --always --tags --abbrev=0 | grep -oP "v\d+\.\d+\.\d+" ) diff --git a/bin/ncp/NETWORKING/no-ip.sh b/bin/ncp/NETWORKING/no-ip.sh index a9ccdb5c..311bb2b0 100644 --- a/bin/ncp/NETWORKING/no-ip.sh +++ b/bin/ncp/NETWORKING/no-ip.sh @@ -14,8 +14,8 @@ install() apt-get update apt-get install --no-install-recommends -y make gcc libc-dev - local TMPDIR="$( mktemp -d /tmp/noip.XXXXXX )" - cd "$TMPDIR" + local TEMPDIR="$( mktemp -d /tmp/noip.XXXXXX )" + cd "$TEMPDIR" wget -O- --content-disposition https://github.com/nachoparker/noip-DDNS/archive/master/latest.tar.gz \ | tar -xz \ || return 1 @@ -41,7 +41,7 @@ EOF chmod +x /etc/init.d/noip2 cd - - rm -r "$TMPDIR" + rm -r "$TEMPDIR" update-rc.d noip2 defaults update-rc.d noip2 disable diff --git a/build/armbian/armbian.sh b/build/armbian/armbian.sh index 68c990e1..554c31cf 100644 --- a/build/armbian/armbian.sh +++ b/build/armbian/armbian.sh @@ -31,7 +31,9 @@ echo -e "\nInstalling NextCloudPi" hostname -F /etc/hostname # fix 'sudo resolve host' errors -CODE_DIR="$(pwd)" bash install.sh +CODE_DIR="$(pwd)" DBG=x bash install.sh + +echo -e "\nPostinstall..." run_app_unsafe post-inst.sh # disable SSH by default, it can be enabled through ncp-web diff --git a/build/build-SD-armbian.sh b/build/build-SD-armbian.sh index 2683d7b2..98f07ed3 100755 --- a/build/build-SD-armbian.sh +++ b/build/build-SD-armbian.sh @@ -30,7 +30,7 @@ source etc/library.sh # sets RELEASE prepare_dirs # tmp cache output # get latest armbian -[[ -d armbian ]] || git clone https://github.com/armbian/build armbian +[[ -d armbian ]] || git clone --depth 1 https://github.com/armbian/build armbian #( cd armbian && git pull --ff-only --tags && git checkout v23.02 ) #sed -i -e '/export rootfs_size=/s/du -sm/du --apparent-size -sm/' armbian/lib/functions/image/partitioning.sh #sed -i -e '/export rootfs_size_mib=/s/du -sm/du --apparent-size -sm/' armbian/lib/functions/main/rootfs-image.sh diff --git a/install.sh b/install.sh index f94ae18c..215773ef 100644 --- a/install.sh +++ b/install.sh @@ -14,8 +14,8 @@ BRANCH="${BRANCH:-master}" set -e$DBG -TMPDIR="$(mktemp -d /tmp/nextcloudpi.XXXXXX || (echo "Failed to create temp dir. Exiting" >&2 ; exit 1) )" -trap "rm -rf \"${TMPDIR}\"" 0 1 2 3 15 +TEMPDIR="$(mktemp -d /tmp/nextcloudpi.XXXXXX || (echo "Failed to create temp dir. Exiting" >&2 ; exit 1) )" +trap "rm -rf \"${TEMPDIR}\"" 0 1 2 3 15 [[ ${EUID} -ne 0 ]] && { printf "Must be run as root. Try 'sudo $0'\n" @@ -35,7 +35,7 @@ apt-get install --no-install-recommends -y git ca-certificates sudo lsb-release # get install code if [[ "${CODE_DIR}" == "" ]]; then echo "Getting build code..." - CODE_DIR="${TMPDIR}"/nextcloudpi + CODE_DIR="${TEMPDIR}"/nextcloudpi git clone -b "${BRANCH}" https://github.com/nextcloud/nextcloudpi.git "${CODE_DIR}" fi cd "${CODE_DIR}" @@ -82,7 +82,7 @@ rm /.ncp-image [[ "${CODE_DIR}" != "" ]] || bash /usr/local/bin/ncp-provisioning.sh cd - -rm -rf "${TMPDIR}" +rm -rf "${TEMPDIR}" cohorte_id=$((RANDOM % 100)) cat < /usr/local/etc/instance.cfg