You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@corinthia.apache.org by gb...@apache.org on 2015/08/17 21:31:24 UTC

incubator-corinthia git commit: Local and Github (master) directory tree script

Repository: incubator-corinthia
Updated Branches:
  refs/heads/master 610fd50e2 -> e1d7c54eb


Local and Github (master) directory tree script


Project: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/commit/e1d7c54e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/tree/e1d7c54e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/diff/e1d7c54e

Branch: refs/heads/master
Commit: e1d7c54ebb21659b92625a04114187708fca0741
Parents: 610fd50
Author: Gabriela Gibson <gb...@apache.org>
Authored: Mon Aug 17 20:30:50 2015 +0100
Committer: Gabriela Gibson <gb...@apache.org>
Committed: Mon Aug 17 20:30:50 2015 +0100

----------------------------------------------------------------------
 scripts/README.txt    |   1 +
 scripts/check_tree.sh | 132 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 133 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/e1d7c54e/scripts/README.txt
----------------------------------------------------------------------
diff --git a/scripts/README.txt b/scripts/README.txt
index 1b26243..214ab5b 100644
--- a/scripts/README.txt
+++ b/scripts/README.txt
@@ -6,3 +6,4 @@ Current scripts:
 ----------------
 
 build-corinthia-on-linux  Fetch and build Corinthia with TAGS and/or tags files.
+check_tree.sh             Build local and github directory tree html files.

http://git-wip-us.apache.org/repos/asf/incubator-corinthia/blob/e1d7c54e/scripts/check_tree.sh
----------------------------------------------------------------------
diff --git a/scripts/check_tree.sh b/scripts/check_tree.sh
new file mode 100755
index 0000000..17cfd0a
--- /dev/null
+++ b/scripts/check_tree.sh
@@ -0,0 +1,132 @@
+#! /bin/bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+#############################################################################
+#
+# This script generates a directory tree html representation of the
+# Corinthia project for the local file directory and the remote Github
+# directory (master).
+#
+# It pulls down latest Corinthia version, makes the new tree, diffs it
+# to the old tree and if the tree has changed, creates, commit and
+# pushes the new trees.  It uses the commit message to label the
+# file's purpose.
+#
+# File created/updated:  
+#
+#    $TREE_FILE_NAME     --- the tree that works for the local directory
+#    $GIT_TREE_FILE_NAME --- the tree that works for the remote repository
+#
+# This script is designed to run as a daily cronjob on one of the
+# comitter's machines and it is assumed that their git setup has
+# access to their server password.
+#
+# useage:  ./checktree -w
+#
+# Current 'tree guardian':  Gabriela <gb...@apache.org>
+#
+##########################################################################
+
+PROJECT_NAME="Corinthia"
+TRUNK_PATH="/home/g/cor-tree-cronjob/incubator-corinthia/"
+TREE_FILE_NAME="tree_local_directory.html"
+GIT_TREE_FILE_NAME="tree_github_repository.html"
+PROJECT_SERVER="apache.org"
+LOG_FILE="CorinthiaTree.log"
+MAX_RETRIES=20
+COUNT_TRIES=0
+
+GIT_HUB_LINKS='s/href="./href=\"https:\/github.com\/apache\/incubator-corinthia\/tree\/master/g'
+
+WRITE=0
+
+write_log()
+{
+    echo "$(date):  $*." >> $LOG_FILE
+}
+
+usage() 
+{
+    echo "Only \"-w\" is a valid argument.  Exiting"
+    exit
+}
+
+update_tree()
+{
+    HAS_INET_CONNECTION=$(ping -c 1 $PROJECT_SERVER | grep -c "1 received")
+
+    if [[ $HAS_INET_CONNECTION != 1 ]]
+    then
+        COUNT_TRIES=$(( COUNT_TRIES+1 ))
+        if [[  $MAX_RETRIES -gt $COUNT_TRIES ]]
+        then     
+            $(sleep "3600s")
+            update_tree
+        else
+            write_log "Update failure"
+        fi    
+    else
+        WANT_UPDATE=$(git pull)
+        if [ "$WANT_UPDATE" == "Already up-to-date." ];
+        then
+            write_log "$WANT_UPDATE"
+            exit
+        else
+            tree -d > new_tree.html
+            NEED_TREE=$(diff new_tree.html old_tree.html)
+            if [[ -n $NEED_TREE ]] 
+            then
+                mv new_tree.html old_tree.html
+                tree -d -H . -T "$PROJECT_NAME Local File Directory Structure" > $TREE_FILE_NAME
+                tree -d -H . -T "$PROJECT_NAME Github Current Repository Directory Structure" |
+                  sed -e $GIT_HUB_LINKS > $GIT_TREE_FILE_NAME
+                if [[ $WRITE == 1 ]]; 
+                then
+                    git add $TREE_FILE_NAME
+                    git commit -m "Local File Directory Structure"
+                    git push
+                    git add $GIT_TREE_FILE_NAME
+                    git commit -m "Github Current Repository Directory Structure"
+                    git push
+                    write_log "Tree updated."
+                else
+                    write_log "Tree not written, see useage."
+                fi
+            fi
+        fi
+    fi
+}
+
+cd $TRUNK_PATH
+
+write_log "check_tree.sh: Activated"
+
+while getopts w opt; do
+    case "$opt" in
+        w)
+            WRITE=1
+            ;;
+        *)
+            usage
+    esac
+done
+
+update_tree
+
+exit