internal
This commit is contained in:
parent
1d99abf92a
commit
b6eb01bb34
1 changed files with 138 additions and 138 deletions
276
spcd/main.sh
276
spcd/main.sh
|
@ -31,6 +31,144 @@
|
||||||
[ -n "${SPCD_URL_UBUNTU}" ] ||
|
[ -n "${SPCD_URL_UBUNTU}" ] ||
|
||||||
SPCD_URL_UBUNTU="https://ubuntu.mirrors.ovh.net"
|
SPCD_URL_UBUNTU="https://ubuntu.mirrors.ovh.net"
|
||||||
|
|
||||||
|
# ╭──────────╮
|
||||||
|
# │ internal │
|
||||||
|
# ╰──────────╯
|
||||||
|
|
||||||
|
spcd_fill() {
|
||||||
|
spcd_fill__index=${1}
|
||||||
|
while [ "${spcd_fill__index}" -gt 0 ]; do
|
||||||
|
printf "%s" "${2}"
|
||||||
|
spcd_fill__index=$((spcd_fill__index - 1))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# ╭──────────┬────────╮
|
||||||
|
# │ internal │ banner │
|
||||||
|
# ╰──────────┴────────╯
|
||||||
|
|
||||||
|
SPCD_BANNER_DOWN_AND_HORIZONTAL="┬"
|
||||||
|
SPCD_BANNER_DOWN_AND_LEFT="╮"
|
||||||
|
SPCD_BANNER_DOWN_AND_RIGHT="╭"
|
||||||
|
SPCD_BANNER_HORIZONTAL="─"
|
||||||
|
SPCD_BANNER_UP_AND_HORIZONTAL="┴"
|
||||||
|
SPCD_BANNER_UP_AND_LEFT="╯"
|
||||||
|
SPCD_BANNER_UP_AND_RIGHT="╰"
|
||||||
|
SPCD_BANNER_VERTICAL="│"
|
||||||
|
|
||||||
|
spcd_banner_add() {
|
||||||
|
if [ -n "${1}" ]; then
|
||||||
|
spcd_ba__text=" ${1} "
|
||||||
|
spcd_ba__length=${#spcd_ba__text}
|
||||||
|
spcd_ba__filler="$(
|
||||||
|
spcd_fill "${spcd_ba__length}" "${SPCD_BANNER_HORIZONTAL}"
|
||||||
|
)"
|
||||||
|
if [ -n "${SPCD_BANNER_MIDDLE}" ]; then
|
||||||
|
spcd_banner_split
|
||||||
|
else
|
||||||
|
spcd_banner_open
|
||||||
|
fi
|
||||||
|
spcd_banner_append \
|
||||||
|
"${spcd_ba__filler}" "${spcd_ba__text}" "${spcd_ba__filler}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
spcd_banner_add_index() {
|
||||||
|
unset spcd_bai__label
|
||||||
|
unset spcd_bai__level
|
||||||
|
while true; do
|
||||||
|
spcd_bai__level=$((spcd_bai__level + 1))
|
||||||
|
eval "spcd_bai__value=\"\${SPCD_STEP_${spcd_bai__level}_INDEX}\""
|
||||||
|
[ -n "${spcd_bai__value}" ] || break
|
||||||
|
if [ -n "${spcd_bai__label}" ]; then
|
||||||
|
spcd_bai__label="${spcd_bai__label}.${spcd_bai__value}"
|
||||||
|
else
|
||||||
|
spcd_bai__label="${spcd_bai__value}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
spcd_banner_add "${spcd_bai__label}"
|
||||||
|
}
|
||||||
|
|
||||||
|
spcd_banner_append() {
|
||||||
|
if [ -n "${3}" ]; then
|
||||||
|
SPCD_BANNER_TOP="${SPCD_BANNER_TOP}${1}"
|
||||||
|
SPCD_BANNER_MIDDLE="${SPCD_BANNER_MIDDLE}${2}"
|
||||||
|
SPCD_BANNER_BOTTOM="${SPCD_BANNER_BOTTOM}${3}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
spcd_banner_close() {
|
||||||
|
spcd_banner_append \
|
||||||
|
"${SPCD_BANNER_DOWN_AND_LEFT}" \
|
||||||
|
"${SPCD_BANNER_VERTICAL}" \
|
||||||
|
"${SPCD_BANNER_UP_AND_LEFT}"
|
||||||
|
}
|
||||||
|
|
||||||
|
spcd_banner_echo() {
|
||||||
|
echo "\
|
||||||
|
${SPCD_BANNER_TOP}
|
||||||
|
${SPCD_BANNER_MIDDLE}
|
||||||
|
${SPCD_BANNER_BOTTOM}"
|
||||||
|
}
|
||||||
|
|
||||||
|
spcd_banner_open() {
|
||||||
|
spcd_banner_append \
|
||||||
|
"${SPCD_BANNER_DOWN_AND_RIGHT}" \
|
||||||
|
"${SPCD_BANNER_VERTICAL}" \
|
||||||
|
"${SPCD_BANNER_UP_AND_RIGHT}"
|
||||||
|
}
|
||||||
|
|
||||||
|
spcd_banner_render() {
|
||||||
|
spcd_banner_unset
|
||||||
|
spcd_banner_add_index
|
||||||
|
spcd_banner_add "S"
|
||||||
|
#
|
||||||
|
unset spcd_br__level
|
||||||
|
while true; do
|
||||||
|
spcd_br__level=$((spcd_br__level + 1))
|
||||||
|
eval "spcd_br__value=\"\${SPCD_STEP_${spcd_br__level}_LABEL}\""
|
||||||
|
[ -n "${spcd_br__value}" ] || break
|
||||||
|
spcd_banner_add "${spcd_br__value}"
|
||||||
|
done
|
||||||
|
#
|
||||||
|
spcd_banner_close
|
||||||
|
spcd_banner_echo
|
||||||
|
spcd_banner_unset
|
||||||
|
}
|
||||||
|
|
||||||
|
spcd_banner_split() {
|
||||||
|
spcd_banner_append \
|
||||||
|
"${SPCD_BANNER_DOWN_AND_HORIZONTAL}" \
|
||||||
|
"${SPCD_BANNER_VERTICAL}" \
|
||||||
|
"${SPCD_BANNER_UP_AND_HORIZONTAL}"
|
||||||
|
}
|
||||||
|
|
||||||
|
spcd_banner_unset() {
|
||||||
|
unset \
|
||||||
|
SPCD_BANNER_TOP \
|
||||||
|
SPCD_BANNER_MIDDLE \
|
||||||
|
SPCD_BANNER_BOTTOM
|
||||||
|
}
|
||||||
|
|
||||||
|
# ╭──────────┬───────╮
|
||||||
|
# │ internal │ error │
|
||||||
|
# ╰──────────┴───────╯
|
||||||
|
|
||||||
|
SPCD_ERROR_CI=1
|
||||||
|
SPCD_ERROR_OS=2
|
||||||
|
|
||||||
|
# ╭──────────┬──────╮
|
||||||
|
# │ internal │ step │
|
||||||
|
# ╰──────────┴──────╯
|
||||||
|
|
||||||
|
SPCD_STEP_LEVEL=1
|
||||||
|
|
||||||
|
spcd_step_wipe() {
|
||||||
|
unset \
|
||||||
|
"SPCD_STEP_${SPCD_STEP_LEVEL}_INDEX" \
|
||||||
|
"SPCD_STEP_${SPCD_STEP_LEVEL}_LABEL"
|
||||||
|
}
|
||||||
|
|
||||||
# ╭───────┬─────╮
|
# ╭───────┬─────╮
|
||||||
# │ steps │ env │
|
# │ steps │ env │
|
||||||
# ╰───────┴─────╯
|
# ╰───────┴─────╯
|
||||||
|
@ -1077,144 +1215,6 @@ SPCD_VERT="${SPCD_BOX_VERTICAL}"
|
||||||
SPCD_SPLT="${SPCD_BOX_RIGHT}${SPCD_HORIZONTAL}"
|
SPCD_SPLT="${SPCD_BOX_RIGHT}${SPCD_HORIZONTAL}"
|
||||||
SPCD_SHUT="${SPCD_BOX_UP}${SPCD_BOX_LEFT}"
|
SPCD_SHUT="${SPCD_BOX_UP}${SPCD_BOX_LEFT}"
|
||||||
|
|
||||||
# ╭──────────╮
|
|
||||||
# │ internal │
|
|
||||||
# ╰──────────╯
|
|
||||||
|
|
||||||
spcd_fill() {
|
|
||||||
spcd_fill__index=${1}
|
|
||||||
while [ "${spcd_fill__index}" -gt 0 ]; do
|
|
||||||
printf "%s" "${2}"
|
|
||||||
spcd_fill__index=$((spcd_fill__index - 1))
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# ╭──────────┬────────╮
|
|
||||||
# │ internal │ banner │
|
|
||||||
# ╰──────────┴────────╯
|
|
||||||
|
|
||||||
SPCD_BANNER_DOWN_AND_HORIZONTAL="┬"
|
|
||||||
SPCD_BANNER_DOWN_AND_LEFT="╮"
|
|
||||||
SPCD_BANNER_DOWN_AND_RIGHT="╭"
|
|
||||||
SPCD_BANNER_HORIZONTAL="─"
|
|
||||||
SPCD_BANNER_UP_AND_HORIZONTAL="┴"
|
|
||||||
SPCD_BANNER_UP_AND_LEFT="╯"
|
|
||||||
SPCD_BANNER_UP_AND_RIGHT="╰"
|
|
||||||
SPCD_BANNER_VERTICAL="│"
|
|
||||||
|
|
||||||
spcd_banner_add() {
|
|
||||||
if [ -n "${1}" ]; then
|
|
||||||
spcd_ba__text=" ${1} "
|
|
||||||
spcd_ba__length=${#spcd_ba__text}
|
|
||||||
spcd_ba__filler="$(
|
|
||||||
spcd_fill "${spcd_ba__length}" "${SPCD_BANNER_HORIZONTAL}"
|
|
||||||
)"
|
|
||||||
if [ -n "${SPCD_BANNER_MIDDLE}" ]; then
|
|
||||||
spcd_banner_split
|
|
||||||
else
|
|
||||||
spcd_banner_open
|
|
||||||
fi
|
|
||||||
spcd_banner_append \
|
|
||||||
"${spcd_ba__filler}" "${spcd_ba__text}" "${spcd_ba__filler}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_banner_add_index() {
|
|
||||||
unset spcd_bai__label
|
|
||||||
unset spcd_bai__level
|
|
||||||
while true; do
|
|
||||||
spcd_bai__level=$((spcd_bai__level + 1))
|
|
||||||
eval "spcd_bai__value=\"\${SPCD_STEP_${spcd_bai__level}_INDEX}\""
|
|
||||||
[ -n "${spcd_bai__value}" ] || break
|
|
||||||
if [ -n "${spcd_bai__label}" ]; then
|
|
||||||
spcd_bai__label="${spcd_bai__label}.${spcd_bai__value}"
|
|
||||||
else
|
|
||||||
spcd_bai__label="${spcd_bai__value}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
spcd_banner_add "${spcd_bai__label}"
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_banner_append() {
|
|
||||||
if [ -n "${3}" ]; then
|
|
||||||
SPCD_BANNER_TOP="${SPCD_BANNER_TOP}${1}"
|
|
||||||
SPCD_BANNER_MIDDLE="${SPCD_BANNER_MIDDLE}${2}"
|
|
||||||
SPCD_BANNER_BOTTOM="${SPCD_BANNER_BOTTOM}${3}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_banner_close() {
|
|
||||||
spcd_banner_append \
|
|
||||||
"${SPCD_BANNER_DOWN_AND_LEFT}" \
|
|
||||||
"${SPCD_BANNER_VERTICAL}" \
|
|
||||||
"${SPCD_BANNER_UP_AND_LEFT}"
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_banner_echo() {
|
|
||||||
echo "\
|
|
||||||
${SPCD_BANNER_TOP}
|
|
||||||
${SPCD_BANNER_MIDDLE}
|
|
||||||
${SPCD_BANNER_BOTTOM}"
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_banner_open() {
|
|
||||||
spcd_banner_append \
|
|
||||||
"${SPCD_BANNER_DOWN_AND_RIGHT}" \
|
|
||||||
"${SPCD_BANNER_VERTICAL}" \
|
|
||||||
"${SPCD_BANNER_UP_AND_RIGHT}"
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_banner_render() {
|
|
||||||
spcd_banner_unset
|
|
||||||
spcd_banner_add_index
|
|
||||||
spcd_banner_add "S"
|
|
||||||
#
|
|
||||||
unset spcd_br__level
|
|
||||||
while true; do
|
|
||||||
spcd_br__level=$((spcd_br__level + 1))
|
|
||||||
eval "spcd_br__value=\"\${SPCD_STEP_${spcd_br__level}_LABEL}\""
|
|
||||||
[ -n "${spcd_br__value}" ] || break
|
|
||||||
spcd_banner_add "${spcd_br__value}"
|
|
||||||
done
|
|
||||||
#
|
|
||||||
spcd_banner_close
|
|
||||||
spcd_banner_echo
|
|
||||||
spcd_banner_unset
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_banner_split() {
|
|
||||||
spcd_banner_append \
|
|
||||||
"${SPCD_BANNER_DOWN_AND_HORIZONTAL}" \
|
|
||||||
"${SPCD_BANNER_VERTICAL}" \
|
|
||||||
"${SPCD_BANNER_UP_AND_HORIZONTAL}"
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_banner_unset() {
|
|
||||||
unset \
|
|
||||||
SPCD_BANNER_TOP \
|
|
||||||
SPCD_BANNER_MIDDLE \
|
|
||||||
SPCD_BANNER_BOTTOM
|
|
||||||
}
|
|
||||||
|
|
||||||
# ╭──────────┬───────╮
|
|
||||||
# │ internal │ error │
|
|
||||||
# ╰──────────┴───────╯
|
|
||||||
|
|
||||||
SPCD_ERROR_CI=1
|
|
||||||
SPCD_ERROR_OS=2
|
|
||||||
|
|
||||||
# ╭──────────┬──────╮
|
|
||||||
# │ internal │ step │
|
|
||||||
# ╰──────────┴──────╯
|
|
||||||
|
|
||||||
SPCD_STEP_LEVEL=1
|
|
||||||
|
|
||||||
spcd_step_wipe() {
|
|
||||||
unset \
|
|
||||||
"SPCD_STEP_${SPCD_STEP_LEVEL}_INDEX" \
|
|
||||||
"SPCD_STEP_${SPCD_STEP_LEVEL}_LABEL"
|
|
||||||
}
|
|
||||||
|
|
||||||
# ╭──────╮
|
# ╭──────╮
|
||||||
# │ main │
|
# │ main │
|
||||||
# ╰──────╯
|
# ╰──────╯
|
||||||
|
|
Loading…
Reference in a new issue