fi
fi
-
if [ "$MSGCOLOR" != 'NO' ]; then
CERROR="\033[1;31m" # red
CWARNING="\033[1;33m" # yellow
fi
}
setupenvironment() {
+ # Next check needs a gnu stat, let's figure that out early.
+ stat=stat
+ if command -v gnustat >/dev/null 2>&1; then
+ stat=gnustat
+ fi
# privilege dropping and testing doesn't work if /tmp isn't world-writeable (as e.g. with libpam-tmpdir)
- if [ -n "$TMPDIR" ] && [ "$(id -u)" = '0' ] && [ "$(stat --format '%a' "$TMPDIR")" != '1777' ]; then
+ if [ -n "$TMPDIR" ] && [ "$(id -u)" = '0' ] && [ "$($stat --format '%a' "$TMPDIR")" != '1777' ]; then
unset TMPDIR
fi
TMPWORKINGDIRECTORY="$(mktemp -d)"
fi
msgninfo "Preparing environment for ${0##*/} in ${TMPWORKINGDIRECTORY}…"
+ # Setup coreutils on BSD systems
+ mkdir "${TMPWORKINGDIRECTORY}/bin"
+ for prefix in gnu g; do
+ for command in stat touch sed cp tr sha1sum sha256sum md5sum sha512sum grep date wc chmod head readlink tar expr base64; do
+ if command -v $prefix$command 2>/dev/null >/dev/null; then
+ [ -e "${TMPWORKINGDIRECTORY}/bin/$command" ] || ln -sf $(command -v $prefix$command) "${TMPWORKINGDIRECTORY}/bin/$command"
+ fi
+ done
+ done
+ export PATH="${TMPWORKINGDIRECTORY}/bin/:$PATH"
+
+
mkdir -m 700 "${TMPWORKINGDIRECTORY}/downloaded"
if [ "$(id -u)" = '0' ]; then
# relax permissions so that running as root with user switching works