diff options
Diffstat (limited to 'packaging/installer/kickstart.sh')
-rwxr-xr-x | packaging/installer/kickstart.sh | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/packaging/installer/kickstart.sh b/packaging/installer/kickstart.sh index a8057c19..2db95f21 100755 --- a/packaging/installer/kickstart.sh +++ b/packaging/installer/kickstart.sh @@ -58,13 +58,27 @@ setup_terminal() { return 0 } +setup_terminal || echo >/dev/null -progress() { - echo >&2 " --- ${TPUT_DIM}${TPUT_BOLD}${*}${TPUT_RESET} --- " +# ----------------------------------------------------------------------------- +fatal() { + printf >&2 "${TPUT_BGRED}${TPUT_WHITE}${TPUT_BOLD} ABORTED ${TPUT_RESET} ${*} \n\n" + exit 1 +} + +run_ok() { + printf >&2 "${TPUT_BGGREEN}${TPUT_WHITE}${TPUT_BOLD} OK ${TPUT_RESET} ${*} \n\n" } +run_failed() { + printf >&2 "${TPUT_BGRED}${TPUT_WHITE}${TPUT_BOLD} FAILED ${TPUT_RESET} ${*} \n\n" +} + +ESCAPED_PRINT_METHOD= +printf "%q " test >/dev/null 2>&1 +[ $? -eq 0 ] && ESCAPED_PRINT_METHOD="printfq" escaped_print() { - if printf "%q " test >/dev/null 2>&1; then + if [ "${ESCAPED_PRINT_METHOD}" = "printfq" ]; then printf "%q " "${@}" else printf "%s" "${*}" @@ -72,24 +86,39 @@ escaped_print() { return 0 } +progress() { + echo >&2 " --- ${TPUT_DIM}${TPUT_BOLD}${*}${TPUT_RESET} --- " +} + +run_logfile="/dev/null" run() { - local dir="${PWD}" info_console + local user="${USER--}" dir="${PWD}" info info_console if [ "${UID}" = "0" ]; then + info="[root ${dir}]# " info_console="[${TPUT_DIM}${dir}${TPUT_RESET}]# " else + info="[${user} ${dir}]$ " info_console="[${TPUT_DIM}${dir}${TPUT_RESET}]$ " fi - escaped_print "${info_console}${TPUT_BOLD}${TPUT_YELLOW}" "${@}" "${TPUT_RESET}\n" >&2 + printf >>"${run_logfile}" "${info}" + escaped_print >>"${run_logfile}" "${@}" + printf >>"${run_logfile}" " ... " + + printf >&2 "${info_console}${TPUT_BOLD}${TPUT_YELLOW}" + escaped_print >&2 "${@}" + printf >&2 "${TPUT_RESET}\n" - ${@} + "${@}" local ret=$? if [ ${ret} -ne 0 ]; then - printf >&2 "${TPUT_BGRED}${TPUT_WHITE}${TPUT_BOLD} FAILED ${TPUT_RESET} ${*} \n\n" + run_failed + printf >>"${run_logfile}" "FAILED with exit code ${ret}\n" else - printf >&2 "${TPUT_BGGREEN}${TPUT_WHITE}${TPUT_BOLD} OK ${TPUT_RESET} ${*} \n\n" + run_ok + printf >>"${run_logfile}" "OK\n" fi return ${ret} @@ -224,8 +253,6 @@ sudo="" [ "${UID}" -ne "0" ] && sudo="sudo" export PATH="${PATH}:/usr/local/bin:/usr/local/sbin" -setup_terminal || echo >/dev/null - # --------------------------------------------------------------------------------------------------------------------- # try to update using autoupdater in the first place |