Compare commits
	
		
			6 Commits
		
	
	
		
			v2.4.2
			...
			897e86ad60
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 897e86ad60 | |||
| ed78db20e2 | |||
| bd00dfe02c | |||
| 55c040df82 | |||
| e68654a022 | |||
| 89a5d23d2f | 
							
								
								
									
										19
									
								
								changelog.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								changelog.md
									
									
									
									
									
								
							| @@ -1,5 +1,24 @@ | |||||||
| # 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) | ||||||
|  | Improve interactive mode detection and non-interactive installation handling in install.sh | ||||||
|  |  | ||||||
|  | - Detect and warn when running without a controlling terminal | ||||||
|  | - Attempt to use /dev/tty for user input when possible | ||||||
|  | - Update prompts and error messages for auto-installation of dependencies | ||||||
|  | - Clarify installation instructions in readme for interactive and non-interactive modes | ||||||
|  |  | ||||||
|  | ## 2025-03-25 - 2.4.3 - fix(readme) | ||||||
|  | Update Quick Install command syntax in readme for auto-yes installation | ||||||
|  |  | ||||||
|  | - Changed installation command to use: curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -c "bash -s -- -y" | ||||||
|  |  | ||||||
| ## 2025-03-25 - 2.4.2 - fix(daemon) | ## 2025-03-25 - 2.4.2 - fix(daemon) | ||||||
| Refactor shutdown initiation logic in daemon by moving the initiateShutdown and monitorDuringShutdown methods from the SNMP manager to the daemon, and update calls accordingly | Refactor shutdown initiation logic in daemon by moving the initiateShutdown and monitorDuringShutdown methods from the SNMP manager to the daemon, and update calls accordingly | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										41
									
								
								install.sh
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								install.sh
									
									
									
									
									
								
							| @@ -50,11 +50,40 @@ fi | |||||||
|  |  | ||||||
| # Detect if script is being piped or run directly | # Detect if script is being piped or run directly | ||||||
| PIPED=0 | PIPED=0 | ||||||
|  | INTERACTIVE=1 | ||||||
| if [ ! -t 0 ]; then | if [ ! -t 0 ]; then | ||||||
|   # Being piped, need to clone the repo |   # Being piped, need to clone the repo | ||||||
|   PIPED=1 |   PIPED=1 | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | # Check if stdin is a terminal | ||||||
|  | if [ ! -t 0 ] || [ ! -t 1 ]; then | ||||||
|  |   # Either stdin or stdout is not a terminal, check if -y was provided | ||||||
|  |   if [ $AUTO_YES -ne 1 ]; then | ||||||
|  |     echo "Script detected it's running in a non-interactive environment without -y flag." | ||||||
|  |     echo "Attempting to find a controlling terminal for interactive prompts..." | ||||||
|  |     # Try to use a controlling terminal for user input | ||||||
|  |     if [ -t 1 ]; then | ||||||
|  |       # Stdout is a terminal, use it | ||||||
|  |       exec < /dev/tty 2>/dev/null || INTERACTIVE=0 | ||||||
|  |     else | ||||||
|  |       # Try to find controlling terminal | ||||||
|  |       exec < /dev/tty 2>/dev/null || INTERACTIVE=0 | ||||||
|  |     fi | ||||||
|  |      | ||||||
|  |     if [ $INTERACTIVE -eq 0 ]; then | ||||||
|  |       echo "ERROR: No controlling terminal available for interactive prompts." | ||||||
|  |       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 | ||||||
|  |     else | ||||||
|  |       echo "Interactive terminal found, continuing with prompts..." | ||||||
|  |     fi | ||||||
|  |   fi | ||||||
|  | fi | ||||||
|  |  | ||||||
| # Helper function to detect OS type | # Helper function to detect OS type | ||||||
| detect_os() { | detect_os() { | ||||||
|   if [ -f /etc/os-release ]; then |   if [ -f /etc/os-release ]; then | ||||||
| @@ -141,8 +170,10 @@ if [ $PIPED -eq 1 ]; then | |||||||
|     if [ $AUTO_YES -eq 1 ]; then |     if [ $AUTO_YES -eq 1 ]; then | ||||||
|       echo "Auto-installing git (-y flag provided)..." |       echo "Auto-installing git (-y flag provided)..." | ||||||
|       install_git |       install_git | ||||||
|     else |     elif [ $INTERACTIVE -eq 1 ]; then | ||||||
|       read -p "Would you like to install git now? (y/N): " install_git_prompt |       # If interactive and no -y flag, ask the user | ||||||
|  |       echo "Would you like to install git now? (y/N): " | ||||||
|  |       read -r install_git_prompt | ||||||
|        |        | ||||||
|       if [[ "$install_git_prompt" =~ ^[Yy]$ ]]; then |       if [[ "$install_git_prompt" =~ ^[Yy]$ ]]; then | ||||||
|         install_git |         install_git | ||||||
| @@ -152,6 +183,12 @@ if [ $PIPED -eq 1 ]; then | |||||||
|         echo "  sudo bash install.sh -y" |         echo "  sudo bash install.sh -y" | ||||||
|         exit 1 |         exit 1 | ||||||
|       fi |       fi | ||||||
|  |     else | ||||||
|  |       # Non-interactive mode without -y flag | ||||||
|  |       echo "Error: Git is required but not installed." | ||||||
|  |       echo "In non-interactive mode, use -y flag to auto-install dependencies:" | ||||||
|  |       echo "  curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- -y" | ||||||
|  |       exit 1 | ||||||
|     fi |     fi | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@serve.zone/nupst", |   "name": "@serve.zone/nupst", | ||||||
|   "version": "2.4.2", |   "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", | ||||||
|   "main": "dist/index.js", |   "main": "dist/index.js", | ||||||
|   "bin": { |   "bin": { | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								readme.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								readme.md
									
									
									
									
									
								
							| @@ -19,10 +19,15 @@ 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) | ||||||
| curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash | # This ensures proper interactive prompts for dependencies | ||||||
|  | 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 | ||||||
|  | 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 | curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- -y | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,6 +3,6 @@ | |||||||
|  */ |  */ | ||||||
| export const commitinfo = { | export const commitinfo = { | ||||||
|   name: '@serve.zone/nupst', |   name: '@serve.zone/nupst', | ||||||
|   version: '2.4.2', |   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' | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user