- Remove duplicate log/error_exit/warning/success/info from hops and
uninstall; remove validate_password, generate_secure_password,
create_docker_networks, validate_timezone from install. Single
canonical copies now live in lib/common.sh, lib/security.sh,
lib/validation.sh, and lib/docker.sh (A5, Q1)
- Fix lib/docker.sh, lib/validation.sh, lib/security.sh to use LIB_DIR
instead of SCRIPT_DIR so sourcing them inside a function does not
clobber the caller's SCRIPT_DIR
- Move SCRIPT_VERSION to lib/common.sh as the single source of truth;
remove local declarations from hops, install, and uninstall
- uninstall now sources lib/common.sh directly for standalone safety
- validate_timezone updated to warn-and-default instead of error_exit
- validate_password updated to handle empty input (return 3)
- Update CHANGELOG and TODO to reflect resolved items (B1-B6, A1, A3,
A5, Q1) and bump version to 1.0.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- B1: Replace recursive get_timezone_mount/get_gpu_devices with literal YAML strings
- B3: Expand /home/*/hops glob via compgen -G instead of storing as array literal;
fix eval echo ~$SUDO_USER -> getent passwd in uninstall
- B4: Correct services source path in setup_firewall (hops_service_definitions.sh -> services)
- B5: Replace all ((x++)) with x=$((x + 1)) to avoid set -e abort on zero pre-increment
- B6: Add Linux-only guard at top of hops entry point
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reset all Path A script versions from 3.x to 1.0.0 following architectural
decision to treat this as a fresh stable baseline after the Path B cleanup.
Added TODO.md with prioritized audit findings and replaced the old CHANGELOG
with a clean stub.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Changes all version references from 3.1.0 to 3.1.0-beta across:
- Main scripts (hops, install, uninstall, setup, etc.)
- Library modules (lib/*.sh)
- Documentation (README.md)
This reflects the pre-release status of the project before public release.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed macOS deployment directory from ~/homelab/ to ~/hops/
- Updated all core scripts to use new path structure:
• Main working directory: ~/hops/
• Config directory: ~/hops/config/
• Media directory: ~/hops/media/
• Environment file: ~/hops/.env
- Updated documentation in CLAUDE.md and README.md
- Changed log file naming from homelab-* to hops-*
- Linux paths remain unchanged (/opt/appdata, /mnt/media)
Benefits:
- Better brand consistency with project name
- Cleaner, more professional directory structure
- Shorter, easier to remember paths
- Immediately obvious what directory belongs to HOPS
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>