admin-trinkets/scripts/hopon/hopon

34 lines
918 B
Text

#/usr/bin/env bash
# Check for the first parameter.
if [ -z "$1" ]; then
echo "No container/VM name specified."
exit 2
fi
# Check to see if a container/VM manager is installed.
if [ -x "$(command -v incus)" ]; then
vm_manager="incus"
elif [ -x "$(command -v lxc)" ]; then
vm_manager="lxc"
else
echo "No suitable container/VM manager detected."
echo "Make sure you have \"lxc\" or \"incus\" installed."
exit 2
fi
# Look for the specified container/VM.
exists=$("$vm_manager" list -c n -f csv | grep ^$1 -- 2>/dev/null)
if [ -n "$exists" ]; then
# The shell will be different depending on the Linux distro used.
IMAGEOS=$("$vm_manager" config get "$1" image.os)
if [ $IMAGEOS = "Alpine" ]; then
"$vm_manager" exec "$1" -- /bin/ash
else
"$vm_manager" exec "$1" -- /bin/bash
fi
else
echo "Container/VM with name \"$1\" does not exist."
exit 2
fi