42 lines
923 B
Bash
Executable file
42 lines
923 B
Bash
Executable file
#!/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"
|