mirror of
https://github.com/acedanger/shell.git
synced 2025-12-06 07:50:11 -08:00
- 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.
99 lines
3.7 KiB
Markdown
99 lines
3.7 KiB
Markdown
# Shell Scripts and Dotfiles Repository
|
|
|
|
This repository contains various shell scripts for managing media-related tasks and dotfiles for system configuration.
|
|
|
|
## Available Scripts
|
|
|
|
- [Backup Media Script](docs/backup-media.md): Documentation for the `backup-media.sh` script.
|
|
- `plex.sh`: Script to manage the Plex Media Server (start, stop, restart, status).
|
|
- `backup-plex.sh`: Script to back up Plex Media Server databases and related files.
|
|
- `folder-metrics.sh`: Script to calculate disk usage and file count for a directory and its subdirectories.
|
|
|
|
## Documentation
|
|
|
|
- [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
|
|
|
|
The repository includes dotfiles for system configuration in the `dotfiles` directory. These can be automatically set up using the bootstrap script:
|
|
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/acedanger/shell/main/bootstrap.sh | bash
|
|
```
|
|
|
|
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:
|
|
|
|
- **start**: Starts the Plex Media Server.
|
|
- **stop**: Stops the Plex Media Server.
|
|
- **restart**: Restarts the Plex Media Server.
|
|
- **status**: Displays the current status of the Plex Media Server.
|
|
|
|
## Usage
|
|
|
|
Note that these commands will run as `root`.
|
|
|
|
```shell
|
|
./shell/plex.sh {start|stop|restart|status}
|
|
```
|