linux-update.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/usr/bin/env bash
  2. # Organizr Linux Update Script
  3. # Docker-compatible automated update script
  4. set -euo pipefail
  5. # Configuration
  6. GITHUB_REPO="${GITHUB_REPO:-causefx/Organizr}"
  7. # Determine branch
  8. if [ -z "${1:-}" ]; then
  9. echo "No branch specified, using v2-master"
  10. BRANCH="v2-master"
  11. elif [ "$1" == "v2-develop" ] || [ "$1" == "develop" ] || [ "$1" == "dev" ]; then
  12. BRANCH="v2-develop"
  13. elif [ "$1" == "v2-master" ] || [ "$1" == "master" ]; then
  14. BRANCH="v2-master"
  15. else
  16. echo "$1 is not a valid branch, exiting"
  17. exit 1
  18. fi
  19. # Setup paths
  20. SCRIPTPATH="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)"
  21. UPGRADEPATH="$SCRIPTPATH/upgrade"
  22. UPGRADEFILE="$UPGRADEPATH/upgrade.zip"
  23. FOLDER="$UPGRADEPATH/Organizr-${BRANCH#v}"
  24. URL="https://github.com/$GITHUB_REPO/archive/${BRANCH}.zip"
  25. echo "Updating Organizr from $GITHUB_REPO:$BRANCH"
  26. # Cleanup function
  27. cleanup() {
  28. rm -rf "$UPGRADEPATH" 2>/dev/null || true
  29. }
  30. trap cleanup EXIT
  31. # Create upgrade directory
  32. mkdir -p "$UPGRADEPATH"
  33. # Download with error handling
  34. echo "Downloading update..."
  35. if ! curl -sSL --fail --connect-timeout 30 "$URL" -o "$UPGRADEFILE"; then
  36. echo "Error: Failed to download update from $URL"
  37. exit 1
  38. fi
  39. # Extract with error handling
  40. echo "Extracting files..."
  41. if ! unzip -q "$UPGRADEFILE" -d "$UPGRADEPATH"; then
  42. echo "Error: Failed to extract update files"
  43. exit 1
  44. fi
  45. # Verify extraction
  46. if [ ! -d "$FOLDER" ]; then
  47. echo "Error: Expected folder not found: $FOLDER"
  48. exit 1
  49. fi
  50. # Apply update
  51. echo "Applying update..."
  52. cd "$FOLDER"
  53. cp -r ./* "$SCRIPTPATH/../"
  54. # Cleanup is handled by trap
  55. echo "Update completed successfully"