Fix shellcheck complains in CI scripts

.gitlab/ci/build-host.sh:
Change the readonly TMPDIR variable to a global tmpdir variable and set it in the `init()` function.

.gitlab/ci/build-inside-vm.sh:
Change assigning the readonly tmpdir variable directly to assigning it after declaring it.
Change `cleanup()` and `create_zsync_delta()` to use bash-style statements and also check whether SUDO_GID is set before
using it.
This commit is contained in:
David Runge 2021-04-25 16:48:35 +02:00
parent 1a97109639
commit bde3971991
No known key found for this signature in database
GPG Key ID: 7258734B41C31549
2 changed files with 11 additions and 8 deletions

View File

@ -6,18 +6,20 @@
set -o nounset -o errexit set -o nounset -o errexit
readonly MIRROR="https://mirror.pkgbuild.com" readonly MIRROR="https://mirror.pkgbuild.com"
tmpdir=""
function init() { function init() {
readonly ORIG_PWD="${PWD}" readonly ORIG_PWD="${PWD}"
readonly OUTPUT="${PWD}/output" readonly OUTPUT="${PWD}/output"
readonly TMPDIR="$(mktemp --dry-run --directory --tmpdir="${PWD}/tmp")" tmpdir="$(mktemp --dry-run --directory --tmpdir="${PWD}/tmp")"
mkdir -p "${OUTPUT}" "${TMPDIR}" mkdir -p "${OUTPUT}" "${tmpdir}"
cd "${TMPDIR}" cd "${tmpdir}"
} }
# Do some cleanup when the script exits # Do some cleanup when the script exits
function cleanup() { function cleanup() {
rm -rf -- "${TMPDIR}" rm -rf -- "${tmpdir}"
jobs -p | xargs --no-run-if-empty kill jobs -p | xargs --no-run-if-empty kill
} }
trap cleanup EXIT trap cleanup EXIT
@ -146,7 +148,7 @@ function main() {
## Start build and copy output to local disk ## Start build and copy output to local disk
send "bash -x ./.gitlab/ci/build-inside-vm.sh ${PROFILE}\n " send "bash -x ./.gitlab/ci/build-inside-vm.sh ${PROFILE}\n "
expect "# " 2400 # mksquashfs can take a very long time expect "# " 2400 # mksquashfs can take a very long time
send "cp -r --preserve=mode,timestamps -- output /mnt/project/tmp/$(basename "${TMPDIR}")/\n" send "cp -r --preserve=mode,timestamps -- output /mnt/project/tmp/$(basename "${tmpdir}")/\n"
expect "# " 60 expect "# " 60
mv output/* "${OUTPUT}/" mv output/* "${OUTPUT}/"

View File

@ -6,7 +6,8 @@
readonly orig_pwd="${PWD}" readonly orig_pwd="${PWD}"
readonly output="${orig_pwd}/output" readonly output="${orig_pwd}/output"
readonly tmpdir="$(mktemp --dry-run --directory --tmpdir="${orig_pwd}/tmp")" tmpdir=""
tmpdir="$(mktemp --dry-run --directory --tmpdir="${orig_pwd}/tmp")"
cleanup() { cleanup() {
# clean up temporary directories # clean up temporary directories
@ -21,7 +22,7 @@ create_checksums() {
sha256sum "${1}" >"${1}.sha256" sha256sum "${1}" >"${1}.sha256"
sha512sum "${1}" >"${1}.sha512" sha512sum "${1}" >"${1}.sha512"
b2sum "${1}" >"${1}.b2" b2sum "${1}" >"${1}.b2"
if [ -n "${SUDO_UID:-}" ]; then if [[ -n "${SUDO_UID:-}" ]] && [[ -n "${SUDO_GID:-}" ]]; then
chown "${SUDO_UID}:${SUDO_GID}" "${1}"{,.b2,.sha{256,512}} chown "${SUDO_UID}:${SUDO_GID}" "${1}"{,.b2,.sha{256,512}}
fi fi
} }
@ -30,7 +31,7 @@ create_zsync_delta() {
# create a zsync control file for a file # create a zsync control file for a file
# $1: a file # $1: a file
zsyncmake -C -u "${1##*/}" -o "${1}".zsync "${1}" zsyncmake -C -u "${1##*/}" -o "${1}".zsync "${1}"
if [ -n "${SUDO_UID:-}" ]; then if [[ -n "${SUDO_UID:-}" ]] && [[ -n "${SUDO_GID:-}" ]]; then
chown "${SUDO_UID}:${SUDO_GID}" "${1}".zsync chown "${SUDO_UID}:${SUDO_GID}" "${1}".zsync
fi fi
} }