client: lib_docker: factor out args parsers
This commit is contained in:
@@ -98,7 +98,7 @@ function lib_docker::__docker_compose()
|
|||||||
popd 1>/dev/null || return $?
|
popd 1>/dev/null || return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
function lib_docker::__build()
|
function lib_docker::__parse_args_build()
|
||||||
{
|
{
|
||||||
[ -z "$global_usage" ] && lib_utils::die_fatal
|
[ -z "$global_usage" ] && lib_utils::die_fatal
|
||||||
[ -z "$global_arg_delim_1" ] && lib_utils::die_fatal
|
[ -z "$global_arg_delim_1" ] && lib_utils::die_fatal
|
||||||
@@ -175,10 +175,6 @@ function lib_docker::__build()
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
#
|
|
||||||
# Ensure supported arguments
|
|
||||||
#
|
|
||||||
|
|
||||||
[ $# -eq 0 ] && lib_utils::die_usage "$_usage"
|
[ $# -eq 0 ] && lib_utils::die_usage "$_usage"
|
||||||
|
|
||||||
for _arg in "$@"; do
|
for _arg in "$@"; do
|
||||||
@@ -186,10 +182,6 @@ function lib_docker::__build()
|
|||||||
&& lib_utils::die_usage "$_usage"
|
&& lib_utils::die_usage "$_usage"
|
||||||
done
|
done
|
||||||
|
|
||||||
#
|
|
||||||
# Parse arguments before testing
|
|
||||||
#
|
|
||||||
|
|
||||||
# Parse key for value
|
# Parse key for value
|
||||||
for _arg in "$@"; do
|
for _arg in "$@"; do
|
||||||
|
|
||||||
@@ -202,19 +194,20 @@ function lib_docker::__build()
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
#
|
|
||||||
# Test argument values, set globals
|
|
||||||
#
|
|
||||||
|
|
||||||
IFS="$global_arg_delim_3"
|
IFS="$global_arg_delim_3"
|
||||||
|
|
||||||
# Arg: type
|
# Arg: type
|
||||||
if [ ! -z "$_arg_type" ]; then
|
if [ ! -z "$_arg_type" ]; then
|
||||||
[[ ! "$_arg_type" =~ ^default$|^slim$|^tiny$|^micro$ ]] \
|
[[ ! "$_arg_type" =~ ^default$|^slim$|^tiny$|^micro$ ]] \
|
||||||
&& lib_utils::die_usage "$_usage"
|
&& lib_utils::die_usage "$_usage"
|
||||||
fi
|
|
||||||
|
|
||||||
# TODO: factor out parser
|
declare -gr global_arg_type="$_arg_type"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function lib_docker::__build()
|
||||||
|
{
|
||||||
|
lib_docker::__parse_args_build "$@"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Generate Dockerfile
|
# Generate Dockerfile
|
||||||
@@ -241,22 +234,22 @@ function lib_docker::__build()
|
|||||||
# Append to Dockerfile according to type
|
# Append to Dockerfile according to type
|
||||||
#
|
#
|
||||||
|
|
||||||
if [[ "$global_platform" == "dev-tools" && "$_arg_type" != "default" ]]; then
|
if [[ "$global_platform" == "dev-tools" && "$global_arg_type" != "default" ]]; then
|
||||||
lib_utils::print_warning "'${_arg_type}' is not supported for 'dev-tools', using 'default'"
|
lib_utils::print_warning "'${global_arg_type}' is not supported for 'dev-tools', using 'default'"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$global_platform" != "dev-tools" ]]; then
|
if [[ "$global_platform" != "dev-tools" ]]; then
|
||||||
|
|
||||||
local _in_files=()
|
local _in_files=()
|
||||||
|
|
||||||
case "$_arg_type" in
|
case "$global_arg_type" in
|
||||||
default | slim)
|
default | slim)
|
||||||
_in_files+=("hledger-flow.src")
|
_in_files+=("hledger-flow.src")
|
||||||
[[ "$_arg_type" == "default" ]] && _in_files+=("root")
|
[[ "$global_arg_type" == "default" ]] && _in_files+=("root")
|
||||||
;;
|
;;
|
||||||
tiny | micro)
|
tiny | micro)
|
||||||
_in_files+=("hledger-flow.bin")
|
_in_files+=("hledger-flow.bin")
|
||||||
[[ "$_arg_type" == "tiny" ]] && _in_files+=("root")
|
[[ "$global_arg_type" == "tiny" ]] && _in_files+=("root")
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
lib_utils::die_fatal "unsupported build"
|
lib_utils::die_fatal "unsupported build"
|
||||||
@@ -371,7 +364,7 @@ function lib_docker::__run()
|
|||||||
return $_return
|
return $_return
|
||||||
}
|
}
|
||||||
|
|
||||||
function lib_docker::__shell()
|
function lib_docker::__parse_args_shell()
|
||||||
{
|
{
|
||||||
[ -z "$global_usage" ] && lib_utils::die_fatal
|
[ -z "$global_usage" ] && lib_utils::die_fatal
|
||||||
[ -z "$global_arg_delim_2" ] && lib_utils::die_fatal
|
[ -z "$global_arg_delim_2" ] && lib_utils::die_fatal
|
||||||
@@ -379,6 +372,7 @@ function lib_docker::__shell()
|
|||||||
[ -z "$global_user" ] && lib_utils::die_fatal
|
[ -z "$global_user" ] && lib_utils::die_fatal
|
||||||
|
|
||||||
local -r _arg="$1"
|
local -r _arg="$1"
|
||||||
|
|
||||||
local -r _usage="
|
local -r _usage="
|
||||||
\e[32mDescription:\e[0m
|
\e[32mDescription:\e[0m
|
||||||
|
|
||||||
@@ -424,23 +418,29 @@ function lib_docker::__shell()
|
|||||||
if [ -z "$_arg_user" ]; then
|
if [ -z "$_arg_user" ]; then
|
||||||
lib_utils::die_usage "$_usage"
|
lib_utils::die_usage "$_usage"
|
||||||
fi
|
fi
|
||||||
|
declare -gr global_arg_user="${_arg_user}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Use default user
|
# Use default user
|
||||||
local _arg_user="${global_user}"
|
declare -gr global_arg_user="${global_user}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$_arg_user" ]; then
|
if [ -z "$global_arg_user" ]; then
|
||||||
lib_utils::die_usage "$_usage"
|
lib_utils::die_usage "$_usage"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -z "$global_container" ] && lib_utils::die_fatal
|
|
||||||
|
|
||||||
lib_utils::print_debug "Spawning shell in container '${global_container}'"
|
|
||||||
docker exec -it --user "$_arg_user" --workdir / "$global_container" /bin/bash
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function lib_docker::__edit()
|
function lib_docker::__shell()
|
||||||
|
{
|
||||||
|
lib_docker::__parse_args_shell "$@"
|
||||||
|
|
||||||
|
[ -z "$global_container" ] && lib_utils::die_fatal
|
||||||
|
lib_utils::print_debug "Spawning shell in container '${global_container}'"
|
||||||
|
|
||||||
|
docker exec -it --user "$global_arg_user" --workdir / "$global_container" /bin/bash
|
||||||
|
}
|
||||||
|
|
||||||
|
function lib_docker::__parse_args_edit()
|
||||||
{
|
{
|
||||||
[ -z "$global_usage" ] && lib_utils::die_fatal
|
[ -z "$global_usage" ] && lib_utils::die_fatal
|
||||||
[ -z "$global_arg_delim_2" ] && lib_utils::die_fatal
|
[ -z "$global_arg_delim_2" ] && lib_utils::die_fatal
|
||||||
@@ -511,8 +511,13 @@ function lib_docker::__edit()
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
readonly _edit_arg_type=("${_read[@]}")
|
declare -gr global_arg_type=("${_read[@]}")
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function lib_docker::__edit()
|
||||||
|
{
|
||||||
|
lib_docker::__parse_args_edit "$@"
|
||||||
|
|
||||||
[ -z "$EDITOR" ] \
|
[ -z "$EDITOR" ] \
|
||||||
&& lib_utils::die_fatal "Export EDITOR to your preferred editor"
|
&& lib_utils::die_fatal "Export EDITOR to your preferred editor"
|
||||||
@@ -528,7 +533,7 @@ function lib_docker::__edit()
|
|||||||
# Run all files through one editor instance
|
# Run all files through one editor instance
|
||||||
local _paths=()
|
local _paths=()
|
||||||
|
|
||||||
for _type in "${_edit_arg_type[@]}"; do
|
for _type in "${global_arg_type[@]}"; do
|
||||||
case "$_type" in
|
case "$_type" in
|
||||||
env)
|
env)
|
||||||
_paths+=("$global_env_file")
|
_paths+=("$global_env_file")
|
||||||
|
|||||||
Reference in New Issue
Block a user