34 lines
918 B
Text
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
|