From bfee1e99ba5c9f83ab81483f45b7040bc38fb800 Mon Sep 17 00:00:00 2001 From: Yoshinori Okuji <yo@nexedi.com> Date: Fri, 18 Apr 2008 13:59:27 +0000 Subject: [PATCH] Clean up, and add options to specify a svn root path and a destination directory. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@20672 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/bin/build_bt5_from_svn.sh | 62 +++++++++++++++++--------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/product/ERP5/bin/build_bt5_from_svn.sh b/product/ERP5/bin/build_bt5_from_svn.sh index 784a29f4ec..2990b70047 100755 --- a/product/ERP5/bin/build_bt5_from_svn.sh +++ b/product/ERP5/bin/build_bt5_from_svn.sh @@ -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 @@ if [ -e "$LOCKFILE" ]; then 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 -- 2.30.9