[Erp5-report] r20672 - /erp5/trunk/products/ERP5/bin/build_bt5_from_svn.sh

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Apr 18 15:59:28 CEST 2008


Author: yo
Date: Fri Apr 18 15:59:27 2008
New Revision: 20672

URL: http://svn.erp5.org?rev=20672&view=rev
Log:
Clean up, and add options to specify a svn root path and a destination directory.

Modified:
    erp5/trunk/products/ERP5/bin/build_bt5_from_svn.sh

Modified: erp5/trunk/products/ERP5/bin/build_bt5_from_svn.sh
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bin/build_bt5_from_svn.sh?rev=20672&r1=20671&r2=20672&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bin/build_bt5_from_svn.sh (original)
+++ erp5/trunk/products/ERP5/bin/build_bt5_from_svn.sh Fri Apr 18 15:59:27 2008
@@ -1,23 +1,43 @@
-#!/bin/bash
+#! /bin/bash
+#
+# Usage: build_bt5_from_svn.sh [-p path] [-d dir]
+#
+# The path is the last part of the svn root, for example, tag/5.0 or trunk.
+# By default, the path is "trunk".
+#
+# The dir is the destination directory where the repository is made.
+# By default, the dir is the current directory.
 
-# TODO: BT5 version support (stable/unstable)
+set -e
+
+path=trunk
+repository=$(pwd)
+
+while getopts "p:d:" opt; do
+  case $opt in
+    p) path="$OPTARG" ;;
+    d) repository="$OPTARG" ;;
+  esac
+done
 
 # Lock file name
-LOCKFILE="/tmp/`basename $0`.lock"
+LOCKFILE="/tmp/$(basename $0).lock"
 # SVN paths
-SVNROOT="https://svn.erp5.org/repos/public/erp5/trunk/"
+SVNROOT="https://svn.erp5.org/repos/public/erp5/$path"
 # Relative svn paths to fetch
 MODULES="bt5 products/ERP5/bootstrap"
 # Script generating the business template repository index
 GENBTLIST="products/ERP5/bin"
-# Local directory to receive CVS copy
+# Local directory to receive SVN copies
 BASELOCALDIR="/tmp"
+LOCALDIR="$BASELOCALDIR/$$"
 # Local directory to receive butiness templates
-BT5DIR="/var/lib/zope/static/reposit/erp5/upload_module"
+BT5DIR="$repostiry"
 
-function cleanup () {
-  rm -f $LOCKFILE
-  exit 1
+
+function cleanup {
+  rm -f "$LOCKFILE"
+  rm -rf "$LOCALDIR"
 }
 
 if [ -e "$LOCKFILE" ]; then
@@ -25,37 +45,37 @@
   exit 1
 fi
 
-touch "$LOCKFILE" || exit 1
-LOCALDIR="$BASELOCALDIR/$$"
-mkdir "$LOCALDIR" || cleanup
+trap "cleanup" ERR
+
+touch "$LOCKFILE"
+mkdir "$LOCALDIR"
 
 for MODULE in $MODULES; do
-  # Checkout the source code from cvs
-  cd "$LOCALDIR" || cleanup
-  svn co "$SVNROOT$MODULE" > /dev/null || cleanup
+  # Checkout the source code from svn
+  cd "$LOCALDIR"
+  svn co "$SVNROOT/$MODULE" > /dev/null
   BMODULE=`basename "$MODULE"`
 
   # Create one archive for each Business Template
   cd "$LOCALDIR/$BMODULE"
   for BT5 in `ls "$LOCALDIR/$BMODULE"`; do
     if [ -d "$LOCALDIR/$BMODULE/$BT5" ]; then
-      tar -zcf "$LOCALDIR/$BT5.bt5" --exclude .svn "$BT5" || cleanup
+      tar -zcf "$LOCALDIR/$BT5.bt5" --exclude .svn "$BT5"
     fi
   done
 done
 
 # Get the latest version of the genbt5list and generate the index
-cd "$LOCALDIR" || cleanup
-svn co "$SVNROOT$GENBTLIST" > /dev/null || cleanup
+cd "$LOCALDIR"
+svn co "$SVNROOT/$GENBTLIST" > /dev/null
 
 # Publish the repository
 mv -f "$LOCALDIR/"*.bt5 "$BT5DIR"
 
 # Generate the index from repository directory, in case there are BT5 manually added there
-cd "$BT5DIR" || cleanup
+cd "$BT5DIR"
 /usr/bin/python "$LOCALDIR/`basename $GENBTLIST`/genbt5list" > /dev/null
 chmod go+r bt5list
 
 # Clean up
-rm -rf $LOCALDIR
-rm -f $LOCKFILE
+cleanup




More information about the Erp5-report mailing list