generate-phpdoc.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/env bash
  2. set -e
  3. # parameters
  4. PHPDOC_CONFIG="$1" # phpDoc config file
  5. PHPDOC_CACHE_DIR="$2" # phpDoc cache dir
  6. PHPDOC_TARGET_DIR="$3" # phpDoc output dir
  7. PHPDOC_TITLE="$4" # API docs title
  8. # print parameters
  9. echo "Generating phpDocs..."
  10. printf 'PHPDOC_CONFIG="%s"\n' "$PHPDOC_CONFIG"
  11. printf 'PHPDOC_CACHE_DIR="%s"\n' "$PHPDOC_CACHE_DIR"
  12. printf 'PHPDOC_TARGET_DIR="%s"\n' "$PHPDOC_TARGET_DIR"
  13. printf 'PHPDOC_TITLE="%s"\n' "$PHPDOC_TITLE"
  14. echo
  15. # update a separate phpDoc cache
  16. if [ "$PHPDOC_CACHE_DIR" != "-" ]; then
  17. # parse phpDoc files (i.e. update cache)
  18. printf "Update phpDoc cache...\n"
  19. phpdoc project:parse --config "$PHPDOC_CONFIG" \
  20. --target "$PHPDOC_CACHE_DIR"
  21. # check for changes
  22. printf '\nCheck for phpDoc cache changes...\n'
  23. if [ -z "$(git status --porcelain "$PHPDOC_CACHE_DIR")" ]; then
  24. printf 'No changes detected; skipping phpDocs renewal...\n\n'
  25. exit 0
  26. fi
  27. # NOTE: actually the following command should be `phpdoc project:transform`
  28. # instead of `phpdoc project:run`, but the command seems to be broken...
  29. echo
  30. else
  31. # create temporary cache files in PHPDOC_TARGET_DIR
  32. PHPDOC_CACHE_DIR="$PHPDOC_TARGET_DIR"
  33. fi
  34. # transform phpDoc files (i.e. rewrite API docs)
  35. printf 'Rewrite phpDocs...\n'
  36. rm -rf "$PHPDOC_TARGET_DIR"
  37. phpdoc project:run --config "$PHPDOC_CONFIG" \
  38. --cache-folder "$PHPDOC_CACHE_DIR" \
  39. --target "$PHPDOC_TARGET_DIR" \
  40. --title "$PHPDOC_TITLE"
  41. echo