2025-05-14 15:56:18 -04:00
2023-07-20 00:49:15 +00:00

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: 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

Dotfiles

The repository includes dotfiles for system configuration in the dotfiles directory. These can be automatically set up using the bootstrap script:

curl -fsSL https://raw.githubusercontent.com/acedanger/shell/main/bootstrap.sh | bash

For more information about the dotfiles, see Dotfiles README.

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:

# 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/plex.sh {start|stop|restart|status}
Description
No description provided
Readme 16 MiB
Languages
Shell 84.6%
PowerShell 5.3%
Go 3.2%
HTML 3.2%
Python 2.2%
Other 1.5%