Browse Source

miaou-bash

main
pvincent 3 weeks ago
parent
commit
f530d93148
  1. 4
      tools/miaou-create
  2. 69
      tools/miaou-login

4
tools/miaou-create

@ -117,7 +117,7 @@ function refresh_template {
apt-get update apt-get update
apt-get dist-upgrade -y apt-get dist-upgrade -y
apt-get install -y curl apt-get install -y curl
/opt/miaou-bash/install.sh 2>/dev/null
/opt/miaou-bash/install.sh
EOF EOF
incus --project "$PROJECT_SANDBOX" stop "$TEMPLATE_SANDBOX" incus --project "$PROJECT_SANDBOX" stop "$TEMPLATE_SANDBOX"
@ -199,8 +199,6 @@ function create {
# MAIN # MAIN
set -Eueo pipefail
parse_options "$@" parse_options "$@"
assert_not_sandboxing assert_not_sandboxing
prepare_template_for_quick_creation prepare_template_for_quick_creation

69
tools/miaou-login

@ -1,61 +1,60 @@
#!/usr/bin/env bash
#!/usr/bin/env miaou-bash
# CONSTANTS # CONSTANTS
BASEDIR=$(dirname "$0")
CONTAINER= CONTAINER=
USER= USER=
# FUNCTIONS # FUNCTIONS
function usage { function usage {
echo "$(basename "$0") <CONTAINER_NAME> [--user|-u USER]"
echo "$(basename "$0") <CONTAINER_NAME> [--user|-u USER]"
} }
function parse_options { function parse_options {
while [[ $# -gt 0 ]]; do
case "$1" in
--help | -h)
usage && exit 0
;;
--user | -u)
shift 1
[[ -z ${1:-} ]] && >&2 echo 'ERROR: user expected!' && usage && exit 5
USER="$1"
;;
*)
if [[ -z $CONTAINER ]]; then
CONTAINER=$1
else
echo >&2 "Unknown option: $1" && usage && exit 2
fi
;;
esac
shift 1 # Move to the next argument
done
[[ -n $CONTAINER ]] || (usage && exit 1)
while [[ $# -gt 0 ]]; do
case "$1" in
--help | -h)
usage && exit 0
;;
--user | -u)
shift 1
[[ -z ${1:-} ]] && >&2 echo 'ERROR: user expected!' && usage && exit 5
USER="$1"
;;
*)
if [[ -z $CONTAINER ]]; then
CONTAINER=$1
else
echo >&2 "Unknown option: $1" && usage && exit 2
fi
;;
esac
shift 1 # Move to the next argument
done
[[ -n $CONTAINER ]] || (usage && exit 1)
} }
function incus_su { function incus_su {
incus exec "$CONTAINER" -- su - $1
incus exec "$CONTAINER" -- su - "$1"
} }
function incus_user_exists { function incus_user_exists {
incus exec "$CONTAINER" -- id $1 &> /dev/null
incus exec "$CONTAINER" -- id "$1" &>/dev/null
} }
function login { function login {
if [[ -n $USER ]]; then
incus_su $USER
else
local current=$(whoami)
incus_user_exists $current && incus_su $current || incus_su root
fi
if [[ -n $USER ]]; then
incus_su "$USER"
else
local current
current=$(whoami)
incus_user_exists "$current" && incus_su "$current" || incus_su root
fi
} }
# MAIN # MAIN
set -Eue
parse_options $*
parse_options "$@"
login login
Loading…
Cancel
Save