feat(installer): Add auto-yes flag to installer and update installation documentation
This commit is contained in:
parent
1819b6827a
commit
9b9e009523
@ -1,5 +1,12 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2025-03-25 - 2.4.0 - feat(installer)
|
||||||
|
Add auto-yes flag to installer and update installation documentation
|
||||||
|
|
||||||
|
- Enhance install.sh to parse -y/--yes and -h/--help options, automating git installation when auto-yes is provided
|
||||||
|
- Improve user prompts for dependency installation and provide clearer instructions
|
||||||
|
- Update readme.md to document new installer options and enhanced file system and service changes details
|
||||||
|
|
||||||
## 2025-03-25 - 2.3.0 - feat(installer/cli)
|
## 2025-03-25 - 2.3.0 - feat(installer/cli)
|
||||||
Add OS detection and git auto-installation support to install.sh and improve service setup prompt in CLI
|
Add OS detection and git auto-installation support to install.sh and improve service setup prompt in CLI
|
||||||
|
|
||||||
|
58
install.sh
58
install.sh
@ -2,7 +2,45 @@
|
|||||||
|
|
||||||
# NUPST Installer Script
|
# NUPST Installer Script
|
||||||
# Downloads and installs NUPST globally on the system
|
# Downloads and installs NUPST globally on the system
|
||||||
# Can be used directly with curl: curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash
|
# Can be used directly with curl:
|
||||||
|
# Without auto-installing dependencies:
|
||||||
|
# curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash
|
||||||
|
# With auto-installing dependencies:
|
||||||
|
# curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- -y
|
||||||
|
#
|
||||||
|
# Options:
|
||||||
|
# -y, --yes Automatically answer yes to all prompts
|
||||||
|
# -h, --help Show this help message
|
||||||
|
|
||||||
|
# Parse command line arguments
|
||||||
|
AUTO_YES=0
|
||||||
|
SHOW_HELP=0
|
||||||
|
|
||||||
|
for arg in "$@"; do
|
||||||
|
case $arg in
|
||||||
|
-y|--yes)
|
||||||
|
AUTO_YES=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
SHOW_HELP=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Unknown option
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $SHOW_HELP -eq 1 ]; then
|
||||||
|
echo "NUPST Installer Script"
|
||||||
|
echo "Usage: $0 [options]"
|
||||||
|
echo ""
|
||||||
|
echo "Options:"
|
||||||
|
echo " -y, --yes Automatically answer yes to all prompts"
|
||||||
|
echo " -h, --help Show this help message"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Check if running as root
|
# Check if running as root
|
||||||
if [ "$EUID" -ne 0 ]; then
|
if [ "$EUID" -ne 0 ]; then
|
||||||
@ -99,13 +137,21 @@ if [ $PIPED -eq 1 ]; then
|
|||||||
# Check if git is installed
|
# Check if git is installed
|
||||||
if ! command -v git &> /dev/null; then
|
if ! command -v git &> /dev/null; then
|
||||||
echo "Git is required but not installed."
|
echo "Git is required but not installed."
|
||||||
read -p "Would you like to install git now? (Y/n): " install_git_prompt
|
|
||||||
|
|
||||||
if [[ "$install_git_prompt" =~ ^[Nn]$ ]]; then
|
if [ $AUTO_YES -eq 1 ]; then
|
||||||
echo "Git installation skipped. Please install git manually and run the installer again."
|
echo "Auto-installing git (-y flag provided)..."
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
install_git
|
install_git
|
||||||
|
else
|
||||||
|
read -p "Would you like to install git now? (y/N): " install_git_prompt
|
||||||
|
|
||||||
|
if [[ "$install_git_prompt" =~ ^[Yy]$ ]]; then
|
||||||
|
install_git
|
||||||
|
else
|
||||||
|
echo "Git installation skipped. Please install git manually and run the installer again."
|
||||||
|
echo "Alternatively, you can run the installer with -y flag to automatically install git:"
|
||||||
|
echo " sudo bash install.sh -y"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
50
readme.md
50
readme.md
@ -21,6 +21,9 @@ NUPST is a command-line tool that monitors SNMP-enabled UPS devices and initiate
|
|||||||
```bash
|
```bash
|
||||||
# Install directly without cloning the repository (requires root privileges)
|
# Install directly without cloning the repository (requires root privileges)
|
||||||
curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash
|
curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash
|
||||||
|
|
||||||
|
# Install with auto-yes for dependencies (will install git automatically if needed)
|
||||||
|
curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- -y
|
||||||
```
|
```
|
||||||
|
|
||||||
### Direct from Git
|
### Direct from Git
|
||||||
@ -33,20 +36,58 @@ cd nupst
|
|||||||
# Option 1: Quick install (requires root privileges)
|
# Option 1: Quick install (requires root privileges)
|
||||||
sudo ./install.sh
|
sudo ./install.sh
|
||||||
|
|
||||||
|
# Option 1a: Quick install with auto-yes for dependencies
|
||||||
|
sudo ./install.sh -y
|
||||||
|
|
||||||
# Option 2: Manual setup
|
# Option 2: Manual setup
|
||||||
./setup.sh
|
./setup.sh
|
||||||
sudo ln -s $(pwd)/bin/nupst /usr/local/bin/nupst
|
sudo ln -s $(pwd)/bin/nupst /usr/local/bin/nupst
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Installation Options
|
||||||
|
|
||||||
|
The installer script (`install.sh`) supports the following options:
|
||||||
|
|
||||||
|
```
|
||||||
|
-y, --yes Automatically answer yes to all prompts (like installing git)
|
||||||
|
-h, --help Show the help message
|
||||||
|
```
|
||||||
|
|
||||||
### From NPM
|
### From NPM
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install -g @serve.zone/nupst
|
npm install -g @serve.zone/nupst
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## System Changes
|
||||||
|
|
||||||
|
When installed, NUPST makes the following changes to your system:
|
||||||
|
|
||||||
|
### File System Changes
|
||||||
|
|
||||||
|
| Path | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `/opt/nupst/` | Main installation directory containing the NUPST files |
|
||||||
|
| `/etc/nupst/config.json` | Configuration file |
|
||||||
|
| `/usr/local/bin/nupst` | Symlink to the NUPST executable |
|
||||||
|
| `/etc/systemd/system/nupst.service` | Systemd service file (when enabled) |
|
||||||
|
|
||||||
|
### Service Changes
|
||||||
|
|
||||||
|
- Creates and enables a systemd service called `nupst.service` (when enabled with `nupst enable`)
|
||||||
|
- The service runs with root permissions to allow system shutdown capabilities
|
||||||
|
|
||||||
|
### Network Access
|
||||||
|
|
||||||
|
- NUPST only communicates with your UPS device via SNMP (default port 161)
|
||||||
|
- Brief connections to npmjs.org to check for updates
|
||||||
|
|
||||||
## Uninstallation
|
## Uninstallation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Using the CLI tool:
|
||||||
|
sudo nupst uninstall
|
||||||
|
|
||||||
# If installed from git repository:
|
# If installed from git repository:
|
||||||
cd /path/to/nupst
|
cd /path/to/nupst
|
||||||
sudo ./uninstall.sh
|
sudo ./uninstall.sh
|
||||||
@ -57,9 +98,10 @@ npm uninstall -g @serve.zone/nupst
|
|||||||
|
|
||||||
The uninstaller will:
|
The uninstaller will:
|
||||||
- Stop and disable the systemd service (if installed)
|
- Stop and disable the systemd service (if installed)
|
||||||
- Remove the systemd service file
|
- Remove the systemd service file from `/etc/systemd/system/nupst.service`
|
||||||
- Remove the symlink from /usr/local/bin
|
- Remove the symlink from `/usr/local/bin/nupst`
|
||||||
- Optionally remove configuration files from /etc/nupst
|
- Optionally remove configuration files from `/etc/nupst/`
|
||||||
|
- Remove the repository directory from `/opt/nupst/` (when using `nupst uninstall`)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@ -76,7 +118,9 @@ Usage:
|
|||||||
nupst status - Show status of the systemd service and UPS status
|
nupst status - Show status of the systemd service and UPS status
|
||||||
nupst setup - Run the interactive setup to configure SNMP settings
|
nupst setup - Run the interactive setup to configure SNMP settings
|
||||||
nupst test - Test the current configuration by connecting to the UPS
|
nupst test - Test the current configuration by connecting to the UPS
|
||||||
|
nupst config - Display the current configuration
|
||||||
nupst update - Update NUPST from repository and refresh systemd service (requires root)
|
nupst update - Update NUPST from repository and refresh systemd service (requires root)
|
||||||
|
nupst uninstall - Completely uninstall NUPST from the system (requires root)
|
||||||
nupst help - Show this help message
|
nupst help - Show this help message
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@serve.zone/nupst',
|
name: '@serve.zone/nupst',
|
||||||
version: '2.3.0',
|
version: '2.4.0',
|
||||||
description: 'Node.js UPS Shutdown Tool for SNMP-enabled UPS devices'
|
description: 'Node.js UPS Shutdown Tool for SNMP-enabled UPS devices'
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user