Browse Source

testing script with gin init added

julien colomb 3 years ago
parent
commit
46f25a3522
3 changed files with 116 additions and 0 deletions
  1. 4 0
      .log/gin.log
  2. 1 0
      README.md
  3. 111 0
      sync

+ 4 - 0
.log/gin.log

@@ -0,0 +1,4 @@
+2021-05-13T13:08:06: Sync script executed
+Error occurred during 'gin sync'
+128
+2021-05-13T13:10:00: Sync script executed

+ 1 - 0
README.md

@@ -1,2 +1,3 @@
 # Lab_Figures
 
+test

+ 111 - 0
sync

@@ -0,0 +1,111 @@
+#!/usr/bin/env bash
+#
+# Upload changes from inside repository using GIN CLI
+# Works with submodules.
+# Assumes gin init was performed or the repository was downloaded via gin get
+
+
+usage() {
+    echo "$0 <sync-option>"
+    echo
+    echo "<sync-option>     The sync option defines what to do with the content of large files."
+    echo "                  It should be one of the following values:"
+    echo "                     download - Download all large file content from the server"
+    echo "                     keep     - Keep all large file content but do not download missing large files"
+    echo "                     remove   - Do not download large files and remove existing local large file content"
+    exit 1
+}
+
+
+
+syncopt="remove"
+
+echo "Optionally enter a commit message, and hit return: "  
+read commitmessage 
+
+if [[ "$commitmessage" == "" ]]; then
+        echo "using date as commit message"
+	commitmessage="commit on $(date +%Y-%m-%d)"    
+fi
+
+
+
+
+checkargs() {
+    case "$1" in
+        download)
+            echo "Downloading and keep all large file content"
+            ;;
+        keep)
+            echo "Keeping existing local large file content, do not downlad extra files"
+            ;;
+        remove)
+            echo "Removing all local large file content"
+            ;;
+        *)
+            usage
+            ;;
+    esac
+}
+
+checkargs "${syncopt}"
+
+checkerror() {
+    err=$1
+    msg=$2
+    if [[ ${err} != 0 ]]; then
+        echo "${msg}" >> ./.log/gin.log
+	echo "${err}" >> ./.log/gin.log
+        echo "${msg}"
+        echo "Press [Enter] to close this window"
+        read -r
+        exit 1
+    fi
+}
+
+loc=$(dirname $0)
+projectdir=$(git -C ${loc} rev-parse --show-toplevel)
+
+pushd ${loc} > /dev/null
+
+mkdir -p ./.log
+echo "$(date +'%Y-%m-%dT%H:%M:%S'): Sync script executed" >> ./.log/gin.log
+
+echo "intialise submodules"
+git submodule foreach gin init
+
+echo "Synchronising submodules"
+git submodule foreach gin commit . -m "$commitmessage"
+checkerror $? "Error occurred during 'gin commit'"
+git submodule foreach gin sync
+checkerror $? "Error occurred during 'gin sync'"
+
+git submodule foreach gin upload
+checkerror $? "Error occurred during 'gin upload'"
+## remove uploaded (annexed) content
+if [[ "$syncopt" == "remove" ]]; then
+        git submodule foreach gin remove-content 
+        checkerror $? "Error occurred during 'gin remove-content'"
+    fi
+# get annexed content 
+if [[ "${syncopt}" == "download" ]]; then
+        git submodule foreach gin get-content .
+        checkerror $? "Error occurred during 'gin get-content .'"
+    fi    
+
+
+echo "Synchronising main repository"
+
+gin commit . -m "$commitmessage"
+gin sync
+gin upload
+# remove uploaded (annexed) content
+if [[ "$syncopt" == "remove" ]]; then
+        gin remove-content 
+        checkerror $? "Error occurred during 'gin remove-content' in main repo"
+    fi
+# get annexed content 
+if [[ "${syncopt}" == "download" ]]; then
+        gin get-content .
+        checkerror $? "Error occurred during 'gin get-content . in main repo'"
+    fi