2 changed files with 35 additions and 38 deletions
@ -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 |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue