diff --git a/src/cmd-supermin-run b/src/cmd-supermin-run new file mode 100755 index 0000000000..dfcf2e0493 --- /dev/null +++ b/src/cmd-supermin-run @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +set -euo pipefail + +dn=$(dirname "$0") +# shellcheck source=src/cmdlib.sh +. "${dn}"/cmdlib.sh + +print_help() { + echo "Usage: cosa supermin-run [--cache|--snapshot] COMMAND [ARG...]" >&2 +} + +if [ $# = 0 ]; then + print_help + exit 1 +fi + +need_cache_dir=0 +case "$1" in + --cache) + shift + set -- runvm_with_cache -- "$@" + need_cache_dir=1 + ;; + --snapshot) + shift + set -- runvm_with_cache_snapshot on -- "$@" + need_cache_dir=1 + ;; + --*) + echo "unrecognized option: $1" + print_help + exit 1 + ;; + *) + set -- runvm -- "$@" + ;; +esac + +# force caller to create tmp/ and possibly cache/ rather than surprisingly +# auto-create them +if [ ! -d tmp ]; then + echo 'Need tmp/ dir for supermin to work' >&2 + exit 1 +fi +if [ $need_cache_dir = 1 ] && [ ! -d cache ]; then + echo 'Need cache/ dir for caching' >&2 + exit 1 +fi + +workdir=$(pwd) +export workdir + +"$@" diff --git a/src/supermin-init-prelude.sh b/src/supermin-init-prelude.sh index 0ef11ca7a5..1dfc3ff1e5 100644 --- a/src/supermin-init-prelude.sh +++ b/src/supermin-init-prelude.sh @@ -50,7 +50,6 @@ for maybe_symlink in "${workdir}"/{src/config,src/yumrepos,builds}; do fi done -mkdir -p "${workdir}"/cache cachedev=$(blkid -lt LABEL=cosa-cache -o device || true) if [ -n "${cachedev}" ]; then mount "${cachedev}" "${workdir}"/cache