summaryrefslogtreecommitdiff
path: root/packages/git.source.sh
diff options
context:
space:
mode:
Diffstat (limited to 'packages/git.source.sh')
-rw-r--r--packages/git.source.sh50
1 files changed, 50 insertions, 0 deletions
diff --git a/packages/git.source.sh b/packages/git.source.sh
new file mode 100644
index 0000000..c502b00
--- /dev/null
+++ b/packages/git.source.sh
@@ -0,0 +1,50 @@
+# Add a static content file to git
+git::add () {
+ if [[ "$USE_GIT" != yes ]]; then
+ return
+ fi
+
+ local -r content_dir="$CONTENT_BASE_DIR/$1"; shift
+ local file="$1"; shift
+ file=${file/$content_dir/.\/}
+
+ cd "$content_dir" &>/dev/null
+ git add "$file"
+ cd - &>/dev/null
+}
+
+# Remove a static content file from git
+git::rm () {
+ if [[ "$USE_GIT" != yes ]]; then
+ return
+ fi
+
+ local -r content_dir="$CONTENT_BASE_DIR/$1"; shift
+ local file="$1"; shift
+ file=${file/$content_dir/.\/}
+
+ cd "$content_dir" &>/dev/null
+ git rm "$file"
+ cd - &>/dev/null
+}
+
+# Commit all changes
+git::commit () {
+ if [[ "$USE_GIT" != yes ]]; then
+ return
+ fi
+
+ local -r content_dir="$CONTENT_BASE_DIR/$1"; shift
+ local -r message="$1"; shift
+
+ cd "$content_dir" &>/dev/null
+ set +e
+ git commit -a -m "$message"
+ if [[ "$GIT_PUSH" == yes ]]; then
+ log INFO "Invoking git pull/push in $content_dir"
+ git pull
+ git push
+ fi
+ set -e
+ cd - &>/dev/null
+}