parent
4c0366fa49
commit
79a14799bb
@ -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 |
Loading…
Reference in new issue