mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 07:18:47 +00:00
feat: add installer mode flag
This commit is contained in:
10
README.md
10
README.md
@@ -123,9 +123,9 @@ See `docs/ARCHITECTURE.md` and [Nostr Setup](docs/nostr_setup.md) for details.
|
||||
### Quick Installer
|
||||
|
||||
Use the automated installer to download SeedPass and its dependencies in one step.
|
||||
The scripts can also install the BeeWare backend for your platform when requested (use `-IncludeGui` on Windows).
|
||||
The scripts can also install the BeeWare backend for your platform when requested (`--mode gui` or `--mode both` on Linux/macOS, `-IncludeGui` on Windows).
|
||||
If the GTK `gi` bindings are missing, the installer attempts to install the
|
||||
necessary system packages using `apt`, `yum`, `pacman`, or Homebrew.
|
||||
necessary system packages using `apt`, `yum`, `pacman`, or Homebrew. When no display server is detected, GUI components are skipped automatically.
|
||||
|
||||
**Linux and macOS:**
|
||||
```bash
|
||||
@@ -136,6 +136,10 @@ bash -c "$(curl -sSL https://raw.githubusercontent.com/PR0M3TH3AN/SeedPass/main/
|
||||
bash -c "$(curl -sSL https://raw.githubusercontent.com/PR0M3TH3AN/SeedPass/main/scripts/install.sh)" _ -b beta
|
||||
```
|
||||
Make sure the command ends right after `-b beta` with **no trailing parenthesis**.
|
||||
*Install with GUI support:*
|
||||
```bash
|
||||
bash -c "$(curl -sSL https://raw.githubusercontent.com/PR0M3TH3AN/SeedPass/main/scripts/install.sh)" _ --mode gui
|
||||
```
|
||||
|
||||
**Windows (PowerShell):**
|
||||
```powershell
|
||||
@@ -152,7 +156,7 @@ The Windows installer will attempt to install Git automatically if it is not alr
|
||||
|
||||
#### Installer Dependency Checks
|
||||
|
||||
The installer verifies that core build tooling—C/C++ build tools, Rust, CMake, and the imaging/GTK libraries—are available before completing. Pass `--no-gui` to skip installing GUI packages. On Linux, ensure `xclip` or `wl-clipboard` is installed for clipboard support.
|
||||
The installer verifies that core build tooling—C/C++ build tools, Rust, CMake, and the imaging/GTK libraries—are available before completing. Use `--mode gui` to install only the graphical interface or `--mode both` to install both interfaces (default: `tui`). On Linux, ensure `xclip` or `wl-clipboard` is installed for clipboard support.
|
||||
|
||||
#### Windows Nostr Sync Troubleshooting
|
||||
|
||||
|
@@ -17,7 +17,8 @@ VENV_DIR="$INSTALL_DIR/venv"
|
||||
LAUNCHER_DIR="$HOME/.local/bin"
|
||||
LAUNCHER_PATH="$LAUNCHER_DIR/seedpass"
|
||||
BRANCH="main" # Default branch
|
||||
INSTALL_GUI=true
|
||||
MODE="tui"
|
||||
INSTALL_GUI=false
|
||||
|
||||
# --- Helper Functions ---
|
||||
print_info() { echo -e "\033[1;34m[INFO]\033[0m" "$1"; }
|
||||
@@ -59,9 +60,9 @@ install_dependencies() {
|
||||
fi
|
||||
}
|
||||
usage() {
|
||||
echo "Usage: $0 [-b | --branch <branch_name>] [--no-gui] [-h | --help]"
|
||||
echo "Usage: $0 [-b | --branch <branch_name>] [-m | --mode <tui|gui|both>] [-h | --help]"
|
||||
echo " -b, --branch Specify the git branch to install (default: main)"
|
||||
echo " --no-gui Skip graphical interface dependencies (default: include GUI)"
|
||||
echo " -m, --mode Installation mode: tui, gui, both (default: tui)"
|
||||
echo " -h, --help Display this help message"
|
||||
exit 0
|
||||
}
|
||||
@@ -82,9 +83,13 @@ main() {
|
||||
-h|--help)
|
||||
usage
|
||||
;;
|
||||
--no-gui)
|
||||
INSTALL_GUI=false
|
||||
shift
|
||||
-m|--mode)
|
||||
if [ -n "$2" ]; then
|
||||
MODE="$2"
|
||||
shift 2
|
||||
else
|
||||
print_error "Error: --mode requires an argument (tui|gui|both)."
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
print_error "Unknown parameter passed: $1"; usage
|
||||
@@ -92,6 +97,26 @@ main() {
|
||||
esac
|
||||
done
|
||||
|
||||
case "$MODE" in
|
||||
tui|gui|both) ;;
|
||||
*)
|
||||
print_error "Invalid mode: $MODE. Use 'tui', 'gui', or 'both'."
|
||||
;;
|
||||
esac
|
||||
|
||||
DISPLAY_DETECTED=false
|
||||
if [ -n "${DISPLAY:-}" ] || [ -n "${WAYLAND_DISPLAY:-}" ]; then
|
||||
DISPLAY_DETECTED=true
|
||||
fi
|
||||
|
||||
if [[ "$MODE" == "gui" || "$MODE" == "both" ]]; then
|
||||
if [ "$DISPLAY_DETECTED" = true ]; then
|
||||
INSTALL_GUI=true
|
||||
else
|
||||
print_warning "No display detected. Skipping GUI installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# 1. Detect OS
|
||||
OS_NAME=$(uname -s)
|
||||
print_info "Installing SeedPass from branch: '$BRANCH'"
|
||||
|
Reference in New Issue
Block a user