#!/usr/bin/env sh set -e # Invoked on termination if the last command failed error() { >&2 echo "$(basename "$0"): ${*}"; } error_envvar() { error "missing environment variable QEMUSH_NAME"; } error_arg() { error "invalid argument \"${*}\""; } # Assert that the QEMUSH_NAME variable is not null trap error_envvar EXIT [ -n "$QEMUSH_NAME" ] # Determine the base dir to use trap 'error_arg "$*"' EXIT case "$1" in disk) basedir=disks extension=qcow2 ;; socket) basedir=sockets/monitors ;; spice) basedir=sockets/spice ;; shared) basedir=shared ;; *) false ;; esac # Release the trap trap - EXIT # Print the actual string basedir="${HOME}/${basedir}" name="$QEMUSH_NAME" [ -n "$2" ] && name="${name}-${2}" [ -n "$extension" ] && extension=".${extension}" printf %s/%s%s\\n "$basedir" "$name" "$extension"