From c122deeaa8a04fda5a9ce06d5b6cdbe8348fe6e0 Mon Sep 17 00:00:00 2001 From: Bitcoin Tools <156422466+bitcoin-tools@users.noreply.github.com> Date: Sat, 24 Aug 2024 13:20:18 -0400 Subject: [PATCH 1/3] feat(ux): keep sudo permissions alive during compile --- nodebuilder | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/nodebuilder b/nodebuilder index 199358ebd..d3625b579 100755 --- a/nodebuilder +++ b/nodebuilder @@ -83,6 +83,8 @@ compile_bitcoin_from_source() ;; esac log_info 'Compiling source code. Please wait.' + keep_sudo_alive & + readonly KEEP_SUDO_ALIVE_PID="$!" if [ "${TARGET_KERNEL}" = 'FreeBSD' ]; then gmake --jobs "${SYS_CORES_PLUS_ONE}" > /dev/null 2>&1 else @@ -102,6 +104,9 @@ compile_bitcoin_from_source() else make install > /dev/null 2>&1 || sudo make install > /dev/null fi + [ -n "${KEEP-SUDO-ALIVE_PID:-}" ] && \ + ps -p "${KEEP_SUDO_ALIVE_PID}" && \ + kill "${KEEP_SUDO_ALIVE_PID}" cd - > /dev/null rm "${STDERR_COMPILE_LOG_FILE}" rm -rf "${COMPILE_DIRECTORY:?}"/ @@ -388,7 +393,11 @@ get_operating_system() # shellcheck disable=SC2317 handle_exit() { - [ -n "${TEMP_DIRECTORY:-}" ] && rm -rf -- "${TEMP_DIRECTORY:?}"/ + [ -n "${TEMP_DIRECTORY:-}" ] && \ + rm -rf -- "${TEMP_DIRECTORY:?}"/ + [ -n "${KEEP-SUDO-ALIVE_PID:-}" ] && \ + ps -p "${KEEP_SUDO_ALIVE_PID}" && \ + kill "${KEEP_SUDO_ALIVE_PID}" } # shellcheck disable=SC2317 @@ -917,6 +926,14 @@ is_valid_bitcoin_version() return 1 } +keep_sudo_alive() +{ + while true; do + sudo -n true + sleep 60 + done +} + log_error() { printf "[%s] ERROR: ${CONSOLE_COLOR_RED}%s" "$(get_log_timestamp)" "$*" \ From 920ee3744ac8ac1228ce008d0c6f200e0d2023b7 Mon Sep 17 00:00:00 2001 From: Bitcoin Tools <156422466+bitcoin-tools@users.noreply.github.com> Date: Sat, 24 Aug 2024 14:10:30 -0400 Subject: [PATCH 2/3] fix syntax --- nodebuilder | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nodebuilder b/nodebuilder index d3625b579..81e697f6f 100755 --- a/nodebuilder +++ b/nodebuilder @@ -104,8 +104,8 @@ compile_bitcoin_from_source() else make install > /dev/null 2>&1 || sudo make install > /dev/null fi - [ -n "${KEEP-SUDO-ALIVE_PID:-}" ] && \ - ps -p "${KEEP_SUDO_ALIVE_PID}" && \ + [ -n "${KEEP-SUDO-ALIVE_PID:-}" ] && + ps -p "${KEEP_SUDO_ALIVE_PID}" && kill "${KEEP_SUDO_ALIVE_PID}" cd - > /dev/null rm "${STDERR_COMPILE_LOG_FILE}" @@ -393,10 +393,10 @@ get_operating_system() # shellcheck disable=SC2317 handle_exit() { - [ -n "${TEMP_DIRECTORY:-}" ] && \ + [ -n "${TEMP_DIRECTORY:-}" ] && rm -rf -- "${TEMP_DIRECTORY:?}"/ - [ -n "${KEEP-SUDO-ALIVE_PID:-}" ] && \ - ps -p "${KEEP_SUDO_ALIVE_PID}" && \ + [ -n "${KEEP-SUDO-ALIVE_PID:-}" ] && + ps -p "${KEEP_SUDO_ALIVE_PID}" && kill "${KEEP_SUDO_ALIVE_PID}" } From 2825d847918306a971c1f6245f619e8e5f8ea1f6 Mon Sep 17 00:00:00 2001 From: Bitcoin Tools <156422466+bitcoin-tools@users.noreply.github.com> Date: Sat, 24 Aug 2024 14:16:57 -0400 Subject: [PATCH 3/3] fix typo in variable name --- nodebuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodebuilder b/nodebuilder index 81e697f6f..3a8af15cb 100755 --- a/nodebuilder +++ b/nodebuilder @@ -395,7 +395,7 @@ handle_exit() { [ -n "${TEMP_DIRECTORY:-}" ] && rm -rf -- "${TEMP_DIRECTORY:?}"/ - [ -n "${KEEP-SUDO-ALIVE_PID:-}" ] && + [ -n "${KEEP_SUDO_ALIVE_PID:-}" ] && ps -p "${KEEP_SUDO_ALIVE_PID}" && kill "${KEEP_SUDO_ALIVE_PID}" }