99# WARNING: Please set REPO_DIR variable before using this lib
1010
1111set -Eeo pipefail
12+ WHITESUR_SOURCE=()
13+ WHITESUR_SOURCE+=(" lib-core.sh" )
1214
1315# ##############################################################################
1416# VARIABLES #
@@ -118,9 +120,9 @@ showapps_normal="false"
118120msg=" "
119121final_msg=" Run '${0} --help' to explore more customization features!"
120122notif_msg=" "
121- error_msg=" "
122123process_ids=()
123- errors=()
124+ whitesur_error=" "
125+ whitesur_lines=()
124126export ANIM_PID=" 0"
125127has_any_error=" false"
126128
@@ -481,12 +483,13 @@ remind_relative_path() {
481483rootify () {
482484 trap true SIGINT
483485 prompt -w " Executing '$( echo " ${@ } " | cut -c -35 ) ...' as root"
484-
486+
485487 if ! sudo " ${@ } " ; then
486- errors+=(" ${* } " )
488+ whitesur_lines+=(" ${BASH_LINENO} " )
489+ whitesur_error=" ${* } "
487490 operation_aborted
488491 fi
489-
492+
490493 trap signal_exit SIGINT
491494}
492495
@@ -499,12 +502,13 @@ full_rootify() {
499502
500503userify () {
501504 trap true SIGINT
502-
505+
503506 if ! sudo -u " ${MY_USERNAME} " " ${@ } " ; then
504- errors+=(" ${* } " )
507+ whitesur_lines+=(" ${BASH_LINENO} " )
508+ whitesur_error=" ${* } "
505509 operation_aborted
506510 fi
507-
511+
508512 trap signal_exit SIGINT
509513}
510514
@@ -515,46 +519,48 @@ signal_exit() {
515519
516520operation_aborted () {
517521 IFS=$' \n '
518- local sources=($( basename -a " ${BASH_SOURCE[@]} " | sort -u) )
519- local dist_ids=($( cat ' /etc/os-release' | awk -F ' =' ' /ID/{print $2}' ) )
522+ local sources=($( basename -a " ${WHITESUR_SOURCE[@]} " " ${BASH_SOURCE[@]} " | sort -u) )
523+ local dist_ids=($( awk -F ' =' ' /ID/{print $2}' " /etc/os-release" ) )
524+ local repo_ver=" "
525+ local lines=()
526+
527+ if ! repo_ver=" $( cd " ${REPO_DIR} " ; git log -1 --date=format-local:" %FT%T%z" --format=" %ad" ) " ; then
528+ if ! repo_ver=" $( date -r " ${REPO_DIR} " +" %FT%T%z" ) " ; then
529+ repo_ver=" unknown"
530+ fi
531+ fi
532+
533+ # whitesur_lines=($(printf "%s\n" "${whitesur_lines[@]}" | sort -u))
520534
521535 clear
522536
537+ prompt -e " \n\n Oops! Operation has been aborted or failed...\n"
538+ prompt -e " =========== ERROR LOG ==========="
539+
523540 if [[ -f " ${WHITESUR_TMP_DIR} /error_log.txt" ]]; then
524- error_msg= " $( cat " ${WHITESUR_TMP_DIR} /error_log.txt" ) "
541+ awk ' {printf "\033[1;31m >>> %s\n", $0} ' " ${WHITESUR_TMP_DIR} /error_log.txt"
525542 fi
526543
527- prompt -e " \n\n Oops! Operation has been aborted or failed...\n"
528- prompt -e " ERROR LOG:\n${error_msg} \n"
529-
530- prompt -e " ERROR INFO:"
531- prompt -e " SOURCES : $( IFS=' ;' ; echo " ${sources[*]} " ) "
532- prompt -e " LINES : ${LINENO} ;${BASH_LINENO} "
533- prompt -e " SNIPPETS:"
544+ prompt -e " \n =========== ERROR INFO =========="
545+ prompt -e " FOUND :"
534546
535547 for i in " ${sources[@]} " ; do
536- errors+=( " $( sed " ${BASH_LINENO} q;d " " ${REPO_DIR} /${i} " ) " )
537- errors+=( " $( sed " ${LINENO} q;d " " ${REPO_DIR} / ${i} " ) " )
548+ lines=( $( grep -Fn " ${whitesur_error :- ${BASH_COMMAND} } " " ${REPO_DIR} /${i} " | cut -d : -f 1 || echo " " ) )
549+ prompt -e " >>> ${i} $( IFS= ' ; ' ; [[ " ${lines[*]} " ]] && echo " at ${lines[*]} " ) "
538550 done
539551
540- errors+=(" ${BASH_COMMAND} " )
541- errors=($( printf " %s\n" " ${errors[@]} " | sort -u) )
542-
543- for i in " ${errors[@]} " ; do
544- [[ ! " ${i} " =~ " errors+=" && ! " ${i} " =~ " operation_aborted" ]] && prompt -e " >>> ${i} "
545- done
546-
547- prompt -e " TRACE :"
552+ prompt -e " SNIPPET:\n >>> ${whitesur_error:- ${BASH_COMMAND} } "
553+ prompt -e " TRACE :"
548554
549555 for i in " ${FUNCNAME[@]} " ; do
550- prompt -e " >>> ${i} "
556+ prompt -e " >>> ${i} "
551557 done
552-
553- echo
554- prompt -e " SYSTEM INFO: "
555- prompt -e " DISTRO : $( IFS= ' ; ' ; echo " ${dist_ids[*]} " ) "
556- prompt -e " SUDO : $( [[ -w " / " ]] && echo " yes " || echo " no " ) "
557- prompt -e " GNOME : ${GNOME_VERSION } \n"
558+
559+ prompt -e " \n =========== SYSTEM INFO ========= "
560+ prompt -e " DISTRO : $( IFS= ' ; ' ; echo " ${dist_ids[*]} " ) "
561+ prompt -e " SUDO : $( [[ -w " / " ]] && echo " yes " || echo " no " ) "
562+ prompt -e " GNOME : ${GNOME_VERSION} "
563+ prompt -e " REPO : ${repo_ver } \n"
558564
559565 prompt -i " TIP: you can google or report to us the infos above\n"
560566 prompt -i " https://github.com/vinceliuice/WhiteSur-gtk-theme/issues\n\n"
0 commit comments