fix(setup.sh): Improve setup script to detect and execute npm-cli.js directly using the Node.js binary
This commit is contained in:
		| @@ -1,5 +1,12 @@ | ||||
| # Changelog | ||||
|  | ||||
| ## 2025-03-26 - 2.6.6 - fix(setup.sh) | ||||
| Improve setup script to detect and execute npm-cli.js directly using the Node.js binary | ||||
|  | ||||
| - Replace use of the npm binary with direct execution of npm-cli.js | ||||
| - Add fallback logic to locate npm-cli.js when not found at the expected path | ||||
| - Simplify cleanup by removing unnecessary PATH modifications | ||||
|  | ||||
| ## 2025-03-26 - 2.6.5 - fix(daemon, setup) | ||||
| Improve shutdown command detection and fallback logic; update setup script to use absolute Node/npm paths | ||||
|  | ||||
|   | ||||
							
								
								
									
										33
									
								
								setup.sh
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								setup.sh
									
									
									
									
									
								
							| @@ -239,20 +239,31 @@ echo "dist_ts directory successfully downloaded from npm registry." | ||||
| # Make launcher script executable | ||||
| chmod +x "$SCRIPT_DIR/bin/nupst" | ||||
|  | ||||
| # Set path to our Node.js binaries | ||||
| # Set up Node.js binary path | ||||
| NODE_BIN_DIR="$SCRIPT_DIR/vendor/$NODE_DIR/bin" | ||||
| NODE_BIN="$NODE_BIN_DIR/node" | ||||
| NPM_BIN="$NODE_BIN_DIR/npm" | ||||
| NPM_CLI_JS="$NODE_BIN_DIR/../lib/node_modules/npm/bin/npm-cli.js" | ||||
|  | ||||
| # Ensure we have executable permissions | ||||
| chmod +x "$NODE_BIN" "$NPM_BIN" | ||||
| chmod +x "$NODE_BIN" | ||||
|  | ||||
| # Save original PATH but don't modify it | ||||
| # We'll use the full paths to binaries instead | ||||
| OLD_PATH="$PATH" | ||||
| # Make sure the npm-cli.js exists | ||||
| if [ ! -f "$NPM_CLI_JS" ]; then | ||||
|   # Try to find npm-cli.js | ||||
|   NPM_CLI_JS=$(find "$NODE_BIN_DIR/.." -name "npm-cli.js" | head -1) | ||||
|    | ||||
|   if [ -z "$NPM_CLI_JS" ]; then | ||||
|     echo "Warning: Could not find npm-cli.js, npm commands may fail" | ||||
|     # Set to a fallback value so code can continue | ||||
|     NPM_CLI_JS="$NODE_BIN_DIR/npm" | ||||
|   else | ||||
|     echo "Found npm-cli.js at: $NPM_CLI_JS" | ||||
|   fi | ||||
| fi | ||||
|  | ||||
| # Display which binaries we're using | ||||
| echo "Using Node binary: $NODE_BIN" | ||||
| echo "Using NPM binary: $NPM_BIN" | ||||
| echo "Using NPM CLI JS: $NPM_CLI_JS" | ||||
|  | ||||
| # Remove existing node_modules directory and package files | ||||
| echo "Cleaning up existing installation..." | ||||
| @@ -289,10 +300,10 @@ echo '{ | ||||
| # Install ONLY net-snmp | ||||
| echo "Installing ONLY net-snmp dependency..." | ||||
| echo "Node version: $("$NODE_BIN" --version)" | ||||
| echo "NPM version: $("$NPM_BIN" --version)" | ||||
| echo "Executing NPM directly with Node.js" | ||||
|  | ||||
| # Use absolute paths to binaries to ensure we use our Node.js | ||||
| "$NPM_BIN" --prefix "$SCRIPT_DIR" install --no-audit --no-fund | ||||
| # Execute npm-cli.js directly with our Node.js binary | ||||
| "$NODE_BIN" "$NPM_CLI_JS" --prefix "$SCRIPT_DIR" install --no-audit --no-fund | ||||
|  | ||||
| INSTALL_STATUS=$? | ||||
| if [ $INSTALL_STATUS -ne 0 ]; then | ||||
| @@ -310,7 +321,7 @@ else | ||||
|   rm -f "$SCRIPT_DIR/package.json.bak" | ||||
| fi | ||||
|  | ||||
| # We didn't modify PATH, so no need to restore it | ||||
| # No temporary files to clean up | ||||
|  | ||||
| echo "NUPST setup completed successfully." | ||||
| echo "You can now run NUPST using: $SCRIPT_DIR/bin/nupst" | ||||
|   | ||||
| @@ -3,6 +3,6 @@ | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@serve.zone/nupst', | ||||
|   version: '2.6.5', | ||||
|   version: '2.6.6', | ||||
|   description: 'Node.js UPS Shutdown Tool for SNMP-enabled UPS devices' | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user