fix(install): Improve interactive terminal detection and update installation instructions

This commit is contained in:
Philipp Kunz 2025-03-25 13:12:38 +00:00
parent bd00dfe02c
commit ed78db20e2
4 changed files with 24 additions and 10 deletions

View File

@ -1,5 +1,11 @@
# Changelog # Changelog
## 2025-03-25 - 2.4.5 - fix(install)
Improve interactive terminal detection and update installation instructions
- Enhanced install.sh to better detect non-interactive environments and provide clearer guidance for both interactive and non-interactive installations
- Updated README.md quick install instructions to recommend process substitution and clarify auto-yes usage
## 2025-03-25 - 2.4.4 - fix(install) ## 2025-03-25 - 2.4.4 - fix(install)
Improve interactive mode detection and non-interactive installation handling in install.sh Improve interactive mode detection and non-interactive installation handling in install.sh

View File

@ -60,8 +60,8 @@ fi
if [ ! -t 0 ] || [ ! -t 1 ]; then if [ ! -t 0 ] || [ ! -t 1 ]; then
# Either stdin or stdout is not a terminal, check if -y was provided # Either stdin or stdout is not a terminal, check if -y was provided
if [ $AUTO_YES -ne 1 ]; then if [ $AUTO_YES -ne 1 ]; then
echo "Warning: Running in non-interactive mode without -y flag." echo "Script detected it's running in a non-interactive environment without -y flag."
echo "Will ask for confirmation via controlling terminal." echo "Attempting to find a controlling terminal for interactive prompts..."
# Try to use a controlling terminal for user input # Try to use a controlling terminal for user input
if [ -t 1 ]; then if [ -t 1 ]; then
# Stdout is a terminal, use it # Stdout is a terminal, use it
@ -72,9 +72,14 @@ if [ ! -t 0 ] || [ ! -t 1 ]; then
fi fi
if [ $INTERACTIVE -eq 0 ]; then if [ $INTERACTIVE -eq 0 ]; then
echo "No controlling terminal available. To run non-interactively, use:" echo "ERROR: No controlling terminal available for interactive prompts."
echo " curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- -y" echo "For interactive installation (RECOMMENDED):"
echo " sudo bash <(curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh)"
echo "For non-interactive installation with automatic dependency installation:"
echo " sudo bash <(curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh) -y"
exit 1 exit 1
else
echo "Interactive terminal found, continuing with prompts..."
fi fi
fi fi
fi fi

View File

@ -19,13 +19,16 @@ NUPST is a command-line tool that monitors SNMP-enabled UPS devices and initiate
### Quick Install (One-line command) ### Quick Install (One-line command)
```bash ```bash
# Install directly without cloning the repository (requires root privileges) # RECOMMENDED: Install interactively using process substitution (requires root privileges)
# This will interactively prompt for installing any dependencies # This ensures proper interactive prompts for dependencies
curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash sudo bash <(curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh)
# Install with auto-yes for dependencies (will install git automatically if needed) # Alternative: Install with auto-yes for dependencies (will install git automatically if needed)
# Use this for automated/non-interactive installations # Use this for automated/non-interactive installations
curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -c "bash -s -- -y" sudo bash <(curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh) -y
# For systems where process substitution is not available (e.g., some older shells)
curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- -y
``` ```
### Direct from Git ### Direct from Git

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@serve.zone/nupst', name: '@serve.zone/nupst',
version: '2.4.4', version: '2.4.5',
description: 'Node.js UPS Shutdown Tool for SNMP-enabled UPS devices' description: 'Node.js UPS Shutdown Tool for SNMP-enabled UPS devices'
} }