diff --git a/setup/so-functions b/setup/so-functions index 4d7019ab1..d3747f3b5 100755 --- a/setup/so-functions +++ b/setup/so-functions @@ -1001,12 +1001,14 @@ installer_progress_loop() { local i=0 while true; do ((i++)) - set_progress_str "$i" 'Checking that all required packages are installed and enabled...' + set_progress_str "$i" 'Checking that all required packages are installed and enabled...' nolog [[ $i -gt 0 ]] && sleep 5s done } installer_prereq_packages() { + installer_progress_loop & # Run progress bar to 100 in ~8 minutes + progress_bg_proc=$! if [ "$OS" == centos ]; then # Print message to stdout so the user knows setup is doing something @@ -1042,6 +1044,13 @@ installer_prereq_packages() { fi retry 50 10 "apt-get -y install curl" >> "$setup_log" 2>&1 || exit 1 fi + + install_success=$? + kill -9 "$progress_bg_proc" >> "$setup_log" 2>&1 + if [[ $install_success -gt 0 ]]; then + echo "Could not install packages required for setup, exiting now." >> "$setup_log" 2>&1 + kill -SIGUSR1 "$setup_proc" >> "$setup_log" 2>&1; exit 1 + fi } disable_auto_start() { @@ -2369,6 +2378,7 @@ set_progress_str() { local percentage_input=$1 progress_bar_text=$2 export progress_bar_text + local nolog=$2 if (( "$percentage_input" >= "$percentage" )); then percentage="$percentage_input" @@ -2378,12 +2388,14 @@ set_progress_str() { echo -e "$percentage_str" - info "Progressing ($percentage%): $progress_bar_text" + if [[ -z $nolog ]]; then + info "Progressing ($percentage%): $progress_bar_text" - printf '%s\n' \ - '----'\ - "$percentage% - ${progress_bar_text^^}"\ - "----" >> "$setup_log" 2>&1 + # printf '%s\n' \ + # '----'\ + # "$percentage% - ${progress_bar_text^^}"\ + # "----" >> "$setup_log" 2>&1 + fi } set_ssh_cmds() { diff --git a/setup/so-setup b/setup/so-setup index 691ba3871..46b005a5e 100755 --- a/setup/so-setup +++ b/setup/so-setup @@ -95,6 +95,16 @@ if ! [ -f $install_opt_file ]; then analyze_system fi +# Set up handler for setup to exit early (use `kill -SIGUSR1 "$setup_proc"; exit 1` in child scripts) +trap 'catch $LINENO' SIGUSR1 +setup_proc="$$" +catch() { + info "Fatal error occurred at $1 in so-setup, failing setup." + grep --color=never "ERROR" "$setup_log" > "$error_log" + whiptail_setup_failed + exit 1 +} + automated=no progress() { local title='Security Onion Setup' @@ -107,16 +117,6 @@ progress() { fi } -# Set up handler for setup to exit early (use `kill -SIGUSR1 "$setup_proc"; exit 1` in child scripts) -trap 'catch $LINENO' SIGUSR1 -setup_proc="$$" -catch() { - info "Fatal error occurred at $1 in so-setup, failing setup." - grep --color=never "ERROR" "$setup_log" > "$error_log" - whiptail_setup_failed - exit 1 -} - detect_os if [[ -f automation/$automation && $(basename $automation) == $automation ]]; then @@ -167,7 +167,6 @@ set_ssh_cmds $automated local_sbin="$(pwd)/../salt/common/tools/sbin" export PATH=$PATH:$local_sbin -installer_prereq_packages && detect_cloud set_network_dev_status_list if [ "$OS" == ubuntu ]; then @@ -282,16 +281,8 @@ fi percentage=0 { - installer_progress_loop & # Run progress bar to 100 in ~8 minutes - progress_bg_proc=$! installer_prereq_packages - install_success=$? - kill -9 $progress_bg_proc &> /dev/null - if [[ $install_success -gt 0 ]]; then - error "Could not install packages required for setup, exiting now." - kill -SIGUSR1 "$setup_proc" &> /dev/null; exit 1 - fi - set_progress_str 99 "Detecting whether setup is running in the cloud." + set_progress_str 99 "Detecting whether setup is running in the cloud." nolog detect_cloud } | progress '...'