/ install.sh
install.sh
  1  #!/bin/bash
  2  
  3  # ================================================ #
  4  #   This program is part of
  5  #   Paul's Preponderating Prepresser v1.1
  6  #   (CC-BY-SA 4.0) 2025 e.v. by
  7  #   The Rev. Paul T. Fusco-Gessick, J.D., SDA
  8  #   <<paul@neroots.net>>
  9  
 10  #   I.F.E.T.  --  I.V.V.S.
 11  # ================================================ #
 12  
 13  set -e
 14  
 15  OS="$(uname -s)"
 16  
 17  echo "======================================================"
 18  echo "  Paul's Preponderating Prepresser v1.1 -- Installer"
 19  echo "======================================================"
 20  echo ""
 21  
 22  install_macos() {
 23      echo "Detected: macOS"
 24      echo ""
 25  
 26      # Check for Homebrew
 27      if ! command -v brew &>/dev/null; then
 28          echo "Homebrew not found. Installing Homebrew..."
 29          /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
 30      else
 31          echo "Homebrew: OK"
 32      fi
 33  
 34      echo ""
 35      echo "Installing system dependencies via Homebrew..."
 36      brew install pdftk-java   # pdftk
 37      brew install poppler       # pdftops
 38      brew install psutils       # psbook, pstops
 39      brew install ghostscript   # gs, ps2pdf
 40      brew install cowsay
 41  }
 42  
 43  install_linux() {
 44      echo "Detected: Linux"
 45      echo ""
 46      echo "Installing system dependencies via apt..."
 47      sudo apt-get update
 48      sudo apt-get install -y \
 49          pdftk \
 50          poppler-utils \
 51          psutils \
 52          ghostscript \
 53          cowsay \
 54          python3-venv
 55  }
 56  
 57  case "$OS" in
 58      Darwin)
 59          install_macos
 60          ;;
 61      Linux)
 62          install_linux
 63          ;;
 64      *)
 65          echo "ERROR: Unsupported operating system: $OS"
 66          echo "Please install the following tools manually:"
 67          echo "  pdftk, pdftops (poppler), psbook/pstops (psutils), ghostscript, cowsay"
 68          exit 1
 69          ;;
 70  esac
 71  
 72  echo ""
 73  echo "Installing pipx (if needed)..."
 74  if ! command -v pipx &>/dev/null; then
 75      if [ "$OS" = "Darwin" ]; then
 76          brew install pipx
 77      else
 78          sudo apt-get install -y pipx
 79      fi
 80      pipx ensurepath
 81  fi
 82  
 83  echo ""
 84  echo "Installing PPP via pipx..."
 85  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 86  pipx install "$SCRIPT_DIR" --force
 87  
 88  echo ""
 89  echo "======================================================"
 90  echo "  Installation complete!"
 91  echo ""
 92  echo "  Commands available system-wide:"
 93  echo "    ppp           - Main workflow orchestrator"
 94  echo "    printydump    - Manual signature splitter"
 95  echo "    ppp-pad       - PDF padding utility"
 96  echo "    pdfmerge      - PDF merger"
 97  echo "    singledingle  - 2-up imposition"
 98  echo "    flippar       - Page flip fixer"
 99  echo "    fppp          - Batch singledingle"
100  echo "    pppf          - Batch flippar"
101  echo "    impose-4up    - 4-up imposition"
102  echo "    isbnner       - Calibre ISBN setter"
103  echo ""
104  echo "  Run 'ppp' to start the workflow."
105  echo "======================================================"