fix: make log viewer optional and document runtime dependencies
This commit is contained in:
+39
-6
@@ -10,11 +10,38 @@ showHelp() {
|
||||
}
|
||||
|
||||
checkDependencies() {
|
||||
command -v ssh >/dev/null 2>&1 || { echo "Error: ssh is required"; exit 1; }
|
||||
command -v whiptail >/dev/null 2>&1 || { echo "Error: whiptail is required"; exit 1; }
|
||||
command -v nano >/dev/null 2>&1 || { echo "Error: nano is required"; exit 1; }
|
||||
command -v sed >/dev/null 2>&1 || { echo "Error: sed is required"; exit 1; }
|
||||
command -v tee >/dev/null 2>&1 || { echo "Error: tee is required"; exit 1; }
|
||||
local -a REQUIRED_CMDS=(ssh whiptail sed tee rm touch)
|
||||
local -a MISSING_CMDS=()
|
||||
local CMD
|
||||
|
||||
for CMD in "${REQUIRED_CMDS[@]}"; do
|
||||
if ! command -v "${CMD}" >/dev/null 2>&1; then
|
||||
MISSING_CMDS+=("${CMD}")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#MISSING_CMDS[@]} -gt 0 ]; then
|
||||
echo "Error: missing required dependencies: ${MISSING_CMDS[*]}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
resolveLogViewer() {
|
||||
if [ -n "${EDITOR}" ] && command -v "${EDITOR}" >/dev/null 2>&1; then
|
||||
LOGVIEWER="${EDITOR}"
|
||||
return
|
||||
fi
|
||||
|
||||
local -a CANDIDATES=(nano vi less)
|
||||
local CANDIDATE
|
||||
for CANDIDATE in "${CANDIDATES[@]}"; do
|
||||
if command -v "${CANDIDATE}" >/dev/null 2>&1; then
|
||||
LOGVIEWER="${CANDIDATE}"
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
LOGVIEWER=""
|
||||
}
|
||||
|
||||
pressAnyKey(){
|
||||
@@ -88,7 +115,11 @@ selectNodes(){
|
||||
sed -i "1s/^/${RESULT//\//\\\/}\n\n\n\n/" "${LOGFILENAME}"
|
||||
sed -i "1s/^/---------\n\n/" "${LOGFILENAME}"
|
||||
sed -i "1s/^/Results :\n/" "${LOGFILENAME}"
|
||||
nano "${LOGFILENAME}"
|
||||
if [ -n "${LOGVIEWER}" ]; then
|
||||
"${LOGVIEWER}" "${LOGFILENAME}"
|
||||
else
|
||||
echo "Warning: no log viewer found, showing log path instead: ${LOGFILENAME}"
|
||||
fi
|
||||
rm -i "${LOGFILENAME}"
|
||||
echo ""
|
||||
echo "Results :"
|
||||
@@ -235,6 +266,7 @@ declare -i YES=0
|
||||
declare -i FULL=0
|
||||
declare CONFIGFILENAME="${HOME}/.config/netupgrade/index.cfg"
|
||||
declare LOGFILENAME="${HOME}/netupgrade.log"
|
||||
declare LOGVIEWER=""
|
||||
declare -a NODES=()
|
||||
|
||||
while [[ ${#} -gt 0 ]]; do
|
||||
@@ -247,6 +279,7 @@ while [[ ${#} -gt 0 ]]; do
|
||||
done
|
||||
|
||||
checkDependencies
|
||||
resolveLogViewer
|
||||
loadConfig
|
||||
selectNodes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user