Prechádzať zdrojové kódy

Build system: Add phpDoc list

Daniel Rudolf 9 rokov pred
rodič
commit
79a14799bb

+ 10 - 2
_build/deploy-phpdoc-branch.sh

@@ -37,12 +37,20 @@ generate-phpdoc.sh \
 [ $? -eq 0 ] || exit 1
 [ -n "$(git status --porcelain "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID.cache")" ] || exit 0
 
+# update phpDoc list
+update-phpdoc-list.sh \
+    "$DEPLOYMENT_DIR/_data/phpDoc.yml" \
+    "$TRAVIS_BRANCH" "branch" "\`$TRAVIS_BRANCH\` branch" "$(date +%s)"
+
 # commit phpDocs
 echo "Committing changes..."
-git add "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID.cache" "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID"
+git add \
+    "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID.cache" "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID" \
+    "$DEPLOYMENT_DIR/_data/phpDoc.yml"
 git commit \
     --message="Update phpDocumentor class docs for $TRAVIS_BRANCH branch @ $TRAVIS_COMMIT" \
-    "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID.cache" "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID"
+    "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID.cache" "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID" \
+    "$DEPLOYMENT_DIR/_data/phpDoc.yml"
 [ $? -eq 0 ] || exit 1
 echo
 

+ 8 - 3
_build/deploy-phpdoc-release.sh

@@ -35,13 +35,18 @@ if [ "$DEPLOY_PHPDOC_RELEASES" == "true" ]; then
         "Pico 1.0 API Documentation ($TRAVIS_TAG)"
     [ $? -eq 0 ] || exit 1
 
-    # commit phpDocs
     if [ -n "$(git status --porcelain "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID")" ]; then
+        # update phpDoc list
+        update-phpdoc-list.sh \
+            "$DEPLOYMENT_DIR/_data/phpDoc.yml" \
+            "$TRAVIS_TAG" "version" "Pico ${TRAVIS_TAG#v}" "$(date +%s)"
+
+        # commit phpDocs
         echo "Committing phpDoc changes..."
-        git add "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID"
+        git add "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID" "$DEPLOYMENT_DIR/_data/phpDoc.yml"
         git commit \
             --message="Update phpDocumentor class docs for $TRAVIS_TAG" \
-            "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID"
+            "$DEPLOYMENT_DIR/phpDoc/$DEPLOYMENT_ID" "$DEPLOYMENT_DIR/_data/phpDoc.yml"
         [ $? -eq 0 ] || exit 1
         echo
     fi

+ 78 - 0
_build/update-phpdoc-list.sh

@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+##
+# Updates the phpDoc list
+#
+# @author  Daniel Rudolf
+# @link    http://picocms.org
+# @license http://opensource.org/licenses/MIT
+#
+
+set -e
+
+# parameters
+LIST_FILE_PATH="$1"      # target file path
+LIST_ID="$2"             # phpDoc ID
+LIST_TYPE="$3"           # phpDoc type
+LIST_TITLE="$4"          # phpDoc title
+LIST_LAST_UPDATE="$5"    # phpDoc last update
+
+# print parameters
+echo "Updating phpDoc list..."
+printf 'LIST_FILE_PATH="%s"\n' "$LIST_FILE_PATH"
+printf 'LIST_ID="%s"\n' "$LIST_ID"
+printf 'LIST_TYPE="%s"\n' "$LIST_TYPE"
+printf 'LIST_TITLE="%s"\n' "$LIST_TITLE"
+printf 'LIST_LAST_UPDATE="%s"\n' "$LIST_LAST_UPDATE"
+echo
+
+# create temporary file
+printf 'Creating temporary file...\n'
+LIST_TMP_FILE="$(mktemp)"
+[ -n "$LIST_TMP_FILE" ] || exit 1
+
+exec 3> "$LIST_TMP_FILE"
+
+# walk through phpDoc list
+printf 'Walking through phpDoc list...\n'
+
+DO_REPLACE="no"
+DID_REPLACE="no"
+while IFS='' read -r LINE || [[ -n "$LINE" ]]; do
+    if [ "$DO_REPLACE" == "yes" ]; then
+        # skip lines until next entry is reached
+        [ "${LINE:0:2}" == "  " ] && continue
+        DO_REPLACE="no"
+
+    elif [ "$LINE" == "- id: $LIST_ID" ]; then
+        # update existing entry
+        printf 'Updating existing entry...\n'
+        printf -- '- id: %s\n' "$LIST_ID" >&3
+        printf -- '  type: %s\n' "$LIST_TYPE" >&3
+        printf -- '  title: %s\n' "$LIST_TITLE" >&3
+        printf -- '  last_update: %s\n' "$LIST_LAST_UPDATE" >&3
+
+        DO_REPLACE="yes"
+        DID_REPLACE="yes"
+        continue
+    fi
+
+    echo "$LINE" >&3
+done < "$LIST_FILE_PATH"
+
+# add new entry
+if [ "$DID_REPLACE" == "no" ]; then
+    printf 'Adding new entry...\n'
+    printf -- '- id: %s\n' "$LIST_ID" >&3
+    printf -- '  type: %s\n' "$LIST_TYPE" >&3
+    printf -- '  title: %s\n' "$LIST_TITLE" >&3
+    printf -- '  last_update: %s\n' "$LIST_LAST_UPDATE" >&3
+fi
+
+exec 3>&-
+
+# move temporary file
+printf 'Replacing phpDoc list...\n'
+mv "$LIST_TMP_FILE" "$LIST_FILE_PATH"
+
+echo