hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mi...@apache.org
Subject git commit: Addendum to HBASE-11951 -- actually add the script
Date Thu, 18 Sep 2014 05:48:27 GMT
Repository: hbase
Updated Branches:
  refs/heads/master e4a766150 -> fdbb5e9ca


Addendum to HBASE-11951 -- actually add the script


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

Branch: refs/heads/master
Commit: fdbb5e9ca30b6667a833c53d6d65bc2fda861b07
Parents: e4a7661
Author: Misty Stanley-Jones <mstanleyjones@cloudera.com>
Authored: Thu Sep 18 15:47:45 2014 +1000
Committer: Misty Stanley-Jones <mstanleyjones@cloudera.com>
Committed: Thu Sep 18 15:48:03 2014 +1000

----------------------------------------------------------------------
 dev-support/publish_hbase_website.sh | 229 ++++++++++++++++++++++++++++++
 1 file changed, 229 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/fdbb5e9c/dev-support/publish_hbase_website.sh
----------------------------------------------------------------------
diff --git a/dev-support/publish_hbase_website.sh b/dev-support/publish_hbase_website.sh
new file mode 100644
index 0000000..389fbe7
--- /dev/null
+++ b/dev-support/publish_hbase_website.sh
@@ -0,0 +1,229 @@
+#!/bin/bash
+
+#   Licensed 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.
+
+USAGE="Usage: $0 [-i | -a] [-g <dir>] [-s <dir>]\n\
+-h          Show this message\n\
+-i          Prompts the user for input\n\
+-a          Does not prompt the user. Potentially dangerous.\n\
+-g          The local location of the HBase git repository\n\
+-s          The local location of the HBase svn checkout\n\
+Either -i or -a is required.\n\
+Edit the script to set default Git and SVN directories."
+
+if [ "$#" == "0" ]; then
+  echo -e "$USAGE"
+  exit 1
+fi
+
+# Process args
+INTERACTIVE=
+AUTO=
+GIT_DIR=
+SVN_DIR=
+while getopts "hiag:s:" OPTION
+do
+  case $OPTION in
+    h)
+      echo -e "$USAGE"
+      exit
+      ;;
+    i)
+      INTERACTIVE=1
+      ;;
+    a)
+      # We don't actually use this variable but require it to be 
+      # set explicitly because it will commit changes without asking
+      AUTO=1
+      ;;
+    g)
+      GIT_DIR=$OPTARG
+      ;;
+    s)
+      SVN_DIR=$OPTARG
+      ;;
+  esac
+done
+
+if [ $INTERACTIVE ] && [ $AUTO ]; then
+    echo "Only one of -i or -a can be used."
+    echo -e $USAGE
+    exit 1
+fi
+
+# Set GIT_DIR and SVN_DIR to defaults if not given
+if [ ! $GIT_DIR ]; then
+  GIT_DIR=~/git/hbase
+fi
+if [ ! $SVN_DIR ]; then
+  SVN_DIR=~/svn/hbase.apache.org/trunk
+fi
+
+# Check that GIT_DIR and SVN_DIR exist
+if [ ! -d $GIT_DIR -o ! -d $SVN_DIR ]; then
+  echo "Both the GIT and SVN directories must exist."
+  echo -e $USAGE
+  exit 1
+fi
+
+cd $GIT_DIR
+
+# Get the latest
+echo "Updating Git"
+git checkout master
+git pull
+
+# Generate the site to ~/git/hbase/target/stage
+if [ $INTERACTIVE ]; then
+    read -p "Build the site? (y/n)" yn
+    case $yn in
+        [Yy]* ) 
+    			mvn clean javadoc:aggregate site site:stage -DskipTests
+    			;;
+        [Nn]* ) 
+          echo "Not building the site."
+        ;;
+    esac
+else
+  echo "Building the site in auto mode."
+  mvn clean javadoc:aggregate site site:stage -DskipTests
+fi
+
+
+# Refresh the local copy of the live website
+echo "Updating Subversion..."
+cd $SVN_DIR
+# Be aware that this will restore all the files deleted a few lines down 
+# if you are debugging this script 
+# and need to run it multiple times without svn committing
+svn update > /dev/null
+
+# Get current size of svn directory and # files, for sanity checking before commit
+SVN_OLD_SIZE=`du -sm . |awk '{print $1}'`
+SVN_OLD_NUMFILES=`find . -type f |wc -l |awk '{print $1}'`
+
+# Make a list of things that are in SVN but not the generated site 
+# and not auto-generated 
+# -- we might need to delete these
+echo "The following directories (if any) might be stale:" |tee /tmp/out.txt
+find . -type d  ! -path '*0.94*' ! -path '*apidocs*' \
+ ! -path '*xref*' ! -path '*book*' \
+ -exec ls $GIT_DIR/target/staging/{} \; |grep 'No such' |tee -a /tmp/out.txt
+echo "The following files (if any) might be stale:" |tee -a /tmp/out.txt
+find . -type f  ! -path '*0.94*' ! -path '*apidocs*' \
+ ! -path '*xref*' ! -path '*book*' ! -name '*.svg' \
+ -exec ls $GIT_DIR/target/staging/{} \; |grep 'No such' |tee -a /tmp/out.txt
+
+if [ $INTERACTIVE ]; then
+  read -p "Exit to take care of them? (y/n)" yn
+  case $yn in
+      [Yy]* ) 
+        exit
+        ;;
+      [Nn]* )
+        ;;
+      * ) echo "Please answer yes or no.";;
+  esac
+else
+  echo "Not taking care of stale directories and files in auto mode." |tee -a /tmp/out.txt
+  echo "If necessary, handle them in a manual commit."|tee -a /tmp/out.txt
+fi
+
+# Delete known auto-generated  content from trunk
+echo "Deleting known auto-generated content from SVN"
+rm -rf apidocs devapidocs xref xref-test book book.html java.html
+
+# Copy generated site to svn -- cp takes different options on Darwin and GNU
+echo "Copying the generated site to SVN"
+if [ `uname` == "Darwin" ]; then
+  COPYOPTS='-r'
+elif [ `uname` == "Linux" ]; then
+  COPYOPTS='-au'
+fi
+
+cp $COPYOPTS $GIT_DIR/target/site/* .
+
+# Look for things we need to fix up in svn
+
+echo "Untracked files: svn add"
+svn status |grep '?' |sed -e "s/[[:space:]]//g"|cut -d '?' -f 2|while read i
+  do svn add $i 
+done
+
+echo "Locally deleted files: svn del"
+svn status |grep '!' |sed -e "s/[[:space:]]//g"|cut -d '!' -f 2|while read i
+  do svn del $i 
+done
+
+# Display the proposed changes. I filtered out 
+# modified because there are so many.
+if [ $INTERACTIVE ]; then
+  svn status |grep -v '^M'|less -P "Enter 'q' to exit the list."
+else
+  echo "The following changes will be made to SVN."
+  svn status
+fi
+
+# Get current size of svn directory, for sanity checking before commit
+SVN_NEW_SIZE=`du -sm . |awk '{print $1}'`
+SVN_NEW_NUMFILES=`find . -type f |wc -l |awk '{print $1}'`
+
+# Get difference between new and old size and number of files
+# We don't care about negatives so remove the sign
+SVN_SIZE_DIFF=`expr $SVN_NEW_SIZE - $SVN_OLD_SIZE|sed 's/-//g'`
+SVN_NUM_DIFF=`expr $SVN_NEW_NUMFILES - $SVN_OLD_NUMFILES|sed 's/-//g'`
+
+# The whole site is only 500 MB so a difference of 10 MB is huge
+# In this case, we should abort because something is wrong
+# Leaving this commented out for now until we get some benchmarks
+#if [ $SVN_SIZE_DIFF > 10 -o $SVN_NUM_DIFF > 50 ]; then
+#  echo "This commit would cause the website to change sizes by \
+#  $SVN_DIFF MB and $SVN_NUM_DIFF files. There is likely a problem. 
+#  Aborting."
+#  exit 1
+#fi
+
+
+if [ $INTERACTIVE ]; then
+  read -p "Commit changes? This will publish the website. (y/n)" yn
+  case $yn in
+  [Yy]* ) 
+    echo "Published website using script in interactive mode. \
+This commit changed the size of the website by $SVN_SIZE_DIFF MB \
+and the number of files by $SVN_NUM_DIFF files." |tee commit.txt
+    cat /tmp/out.txt >> /tmp/commit.txt
+    svn commit -F /tmp/commit.txt
+    exit
+    ;;
+  [Nn]* ) 
+    read -p "Revert SVN changes? (y/n)" revert
+    case $revert in
+    [Yy]* ) 
+      svn revert -R .
+      svn update
+      exit
+      ;;
+    [Nn]* ) 
+      exit
+      ;;
+    esac
+    ;;
+  esac
+else
+  echo "Published website using script in auto mode. This commit \
+changed the size of the website by $SVN_SIZE_DIFF MB and the number of files \
+by $SVN_NUM_DIFF files." |tee /tmp/commit.txt
+  cat /tmp/out.txt >> /tmp/commit.txt
+  svn commit -F /tmp/commit.txt
+fi
+


Mime
View raw message