8rivers is a collection of scripts and tools designed to automate the building, deployment, and backup of web documentation projects. It integrates Python and shell scripting to streamline workflows involving dependency management, HTML documentation generation, and cloud backup.
Features
- Automated installation of Python dependencies via pip
- HTML documentation build using Makefile and Sphinx
- Deployment of documentation to GitHub Pages through GitHub CLI
- Backup of generated HTML builds to Dropbox using Dropbox API
- Multiple shell scripts for setup, deployment, and maintenance
- Dockerfile for containerized environment setup
Tech Stack
- Python (3.5+)
- Bash scripting
- Makefile
- Dropbox API
- Docker
- Sphinx documentation builder
Getting Started
Prerequisites
- Python 3.5 or higher
- pip
- Dropbox API token (required for backup scripts)
- Make
- GitHub CLI (for deployment)
Installation
Clone the repository:
git clone https://github.com/justin-napolitano/8rivers.git
cd 8rivers
Install Python dependencies:
pip install -r requirements.txt
Usage
Build the HTML documentation:
make html
Deploy the built documentation to GitHub Pages:
./deploy.sh
Backup the built HTML to Dropbox (ensure your access token is set in backup_html.py):
python3 backup_html.py
Run setup or maintenance scripts as needed:
./install.sh
./uninstall.sh
Project Structure
8rivers/
├── acp.sh # Shell script (automation tasks)
├── backup_html.py # Python script to backup build/html to Dropbox
├── chtml.sh # Shell script related to HTML build
├── deploy.sh # Deploy built docs to GitHub Pages
├── deployz.sh # Alternative deployment script
├── Dockerfile # Docker container setup
├── doit.sh # Shell script for task automation
├── install.sh # Setup script
├── label_list.py # Python script for processing pickle files
├── latex/ # LaTeX related files
├── LICENSE # License file
├── mac_setup.sh # Mac OS setup script
├── Makefile # Build instructions
├── overview.rst # Documentation overview
├── pullit.sh # Shell script for pulling updates
├── pushit.sh # Shell script for pushing changes
├── python_build.py # Python build automation script
├── README.md # This README
├── requirements.txt # Python dependencies
├── requirments.txt # (Likely duplicate/misspelled dependencies file)
├── res.text # Resource text file
├── source/ # Sphinx source files
├── test.text # Test text file
└── uninstall.sh # Uninstall script
Future Work / Roadmap
- Consolidate and document the purpose of multiple deployment scripts (
deploy.shanddeployz.sh) - Improve error handling and logging in Python scripts
- Add automated tests for scripts and build processes
- Enhance Dockerfile for more robust containerization
- Expand documentation and usage examples
- Integrate CI/CD pipelines for automated builds and deployments