mirror of
https://github.com/acedanger/shell.git
synced 2025-12-05 22:50:18 -08:00
Enhance setup and testing scripts for improved package management and logging
- Updated setup.sh to check for Nala installation and provide alternative installation methods based on Ubuntu version. - Added error handling for package installation, allowing fallback to apt if Nala fails. - Introduced startup.sh to perform container startup checks, including system info and permissions for logs directory. - Created test-setup.sh to validate bootstrap and setup scripts, including detailed logging of package availability and installation results. - Implemented checks for missing packages and provided recommendations for manual installation. - Enhanced logging for better traceability of actions and errors during setup and testing processes.
This commit is contained in:
55
README.md
55
README.md
@@ -14,6 +14,7 @@ This repository contains various shell scripts for managing media-related tasks
|
||||
- [Plex Backup Script Documentation](./docs/plex-backup.md): Detailed documentation for the `backup-plex.sh` script.
|
||||
- [Plex Management Script Documentation](./docs/plex-management.md): Detailed documentation for the `plex.sh` script.
|
||||
- [Folder Metrics Script Documentation](./docs/folder-metrics.md): Detailed documentation for the `folder-metrics.sh` script.
|
||||
- [Testing Framework Documentation](./docs/testing.md): Detailed documentation for the Docker-based testing system.
|
||||
|
||||
## Dotfiles
|
||||
|
||||
@@ -25,6 +26,60 @@ curl -fsSL https://raw.githubusercontent.com/acedanger/shell/main/bootstrap.sh |
|
||||
|
||||
For more information about the dotfiles, see [Dotfiles README](./dotfiles/README.md).
|
||||
|
||||
## Testing
|
||||
|
||||
This repository includes Docker-based testing to validate the setup process across different environments:
|
||||
|
||||
- **test-setup.sh**: Script that validates the bootstrap and setup process
|
||||
- **run-docker-tests.sh**: Runner script that executes tests in Docker containers
|
||||
- **Dockerfile**: Defines test environments (Ubuntu, Debian)
|
||||
|
||||
### Running Tests
|
||||
|
||||
Test your setup in isolated Docker containers with:
|
||||
|
||||
```bash
|
||||
# Test in Ubuntu container
|
||||
./run-docker-tests.sh ubuntu
|
||||
|
||||
# Test in Debian container
|
||||
./run-docker-tests.sh debian
|
||||
|
||||
# Run full bootstrap test in Ubuntu
|
||||
./run-docker-tests.sh full-ubuntu
|
||||
|
||||
# Run full bootstrap test in Debian
|
||||
./run-docker-tests.sh full-debian
|
||||
|
||||
# Test in both Ubuntu and Debian
|
||||
./run-docker-tests.sh all
|
||||
```
|
||||
|
||||
#### When to Use Each Testing Option
|
||||
|
||||
- **Use `./run-docker-tests.sh ubuntu` or `./run-docker-tests.sh debian`** when you want to:
|
||||
- Quickly validate if packages in packages.list are available and installed
|
||||
- Test if your test-setup.sh script is working correctly
|
||||
- Check for issues with specific components without performing a full setup
|
||||
|
||||
- **Use `./run-docker-tests.sh full-ubuntu` or `./run-docker-tests.sh full-debian`** when you want to:
|
||||
- Test the complete bootstrap installation process end-to-end
|
||||
- Validate that all installation steps work correctly on a fresh system
|
||||
- Simulate what users will experience when running the bootstrap script
|
||||
|
||||
- **Use `./run-docker-tests.sh all`** when you want to:
|
||||
- Ensure your test-setup.sh works across both Ubuntu and Debian
|
||||
- Run comprehensive checks before committing changes
|
||||
|
||||
The test environment checks:
|
||||
- Package availability and installation
|
||||
- Core components (git, curl, wget, etc.)
|
||||
- Additional packages from `setup/packages.list`
|
||||
- Oh My Zsh and plugin installation
|
||||
- Dotfile symlinks
|
||||
|
||||
Tests will continue even when some packages fail to install, reporting all issues in a comprehensive summary.
|
||||
|
||||
# plex.sh
|
||||
|
||||
This script is used to manage the Plex Media Server service on a systemd-based Linux distribution. It provides the following functionalities:
|
||||
|
||||
Reference in New Issue
Block a user