132 lines
2.7 KiB
Bash
Executable File
132 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
MODE=$1
|
|
SVN_HOME=$2
|
|
SRC_PATH=$3
|
|
DSE_PATH=$4
|
|
FILE_NAME=$5
|
|
FILE_EXT=$6
|
|
KEY_EXT=$7
|
|
KEY_EXC=$8
|
|
|
|
mkdir -p $DSE_PATH
|
|
|
|
#echo "Get installation files....[$MODE][$SVN_HOME][$SRC_PATH][$DSE_PATH][$FILE_NAM][$FILE_EXT][$KEY_EXT][$KEY_EXC]"
|
|
case $MODE in
|
|
DIR) #1 dir
|
|
LASTFILE=$SRC_PATH
|
|
;;
|
|
FILE) #2 file
|
|
KEYNAME=`echo "$FILE_NAME" | sed -e "s/\./\\\\\./g"`
|
|
echo $KEYNAME
|
|
REVLIST=`svn log -q $SVN_HOME$SRC_PATH | grep "^r[0-9]" | awk -F"|" '{print $1}' | sed -e "s|r||g"`
|
|
echo $REVLIST
|
|
|
|
for REV in $REVLIST
|
|
do
|
|
echo "REV:"$REV;
|
|
echo "SVNPATH:" $SVN_HOME$SRC_PATH;
|
|
echo "SRCPATH:" $SRC_PATH/$KEYNAME
|
|
FILELIST=`svn log -r $REV -q -v $SVN_HOME$SRC_PATH | grep -v "D /" | grep "$SRC_PATH/$KEYNAME" | grep "$KEY_EXT" | awk '{print $2}'`
|
|
|
|
for v in $FILELIST
|
|
do
|
|
LASTFILE=$v
|
|
if [ -n "$KEY_EXC" ]; then
|
|
LASTFILE=`echo $LASTFILE | grep -v "$KEY_EXC"`
|
|
fi
|
|
|
|
if [ -z "$LASTFILE" ]
|
|
then
|
|
:
|
|
else
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -n "$KEY_EXC" ]; then
|
|
LASTFILE=`echo $LASTFILE | grep -v "$KEY_EXC"`
|
|
fi
|
|
|
|
if [ -z "$LASTFILE" ]; then
|
|
:
|
|
else
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
RFILE) #3 Revision file
|
|
KEYNAME=`echo "$FILE_NAME" | sed -e "s/\./\\\\\./g"`
|
|
REVLIST=`svn log -q $SVN_HOME$SRC_PATH | grep "^r[0-9]" | awk -F"|" '{print $1}' | sed -e "s|r||g"`
|
|
|
|
for REV in $REVLIST
|
|
do
|
|
FILELIST=`svn log -r $REV -q -v $SVN_HOME$SRC_PATH | grep -v "D /" | grep "$SRC_PATH/$KEYNAME" | grep "$KEY_EXT" | awk '{print $2}'`
|
|
|
|
for v in $FILELIST
|
|
do
|
|
LASTFILE=$v
|
|
if [ -n "$KEY_EXC" ]; then
|
|
LASTFILE=`echo $LASTFILE | grep -v "$KEY_EXC"`
|
|
fi
|
|
|
|
if [ -z "$LASTFILE" ]; then
|
|
:
|
|
else
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -n "$KEY_EXC" ]; then
|
|
LASTFILE=`echo $LASTFILE | grep -v "$KEY_EXC"`
|
|
fi
|
|
|
|
if [ -z "$LASTFILE" ]; then
|
|
:
|
|
else
|
|
break
|
|
fi
|
|
done
|
|
|
|
arr=$(echo $LASTFILE | tr "/" "\n")
|
|
for x in $arr
|
|
do
|
|
:
|
|
done
|
|
FILE_NAME_REV="$x"
|
|
;;
|
|
*) # error unkown mode
|
|
echo "error unkown mode"
|
|
exit 1;;
|
|
esac
|
|
#echo "LASTFILE=[$LASTFILE]"
|
|
if [ -z "$LASTFILE" ]
|
|
then
|
|
echo "error get SVN history"
|
|
exit 1
|
|
fi
|
|
|
|
ERR=0
|
|
if [ -z "$FILE_NAME" ]; then
|
|
#echo "svn export -q --force $SVN_HOME$LASTFILE $DSE_PATH"
|
|
svn export -q --force $SVN_HOME$LASTFILE $DSE_PATH
|
|
ERR=$?
|
|
elif [ -n "$FILE_NAME_REV" ]; then
|
|
#echo "svn export -q --force $SVN_HOME$LASTFILE $DSE_PATH/$FILE_NAME_REV"
|
|
svn export -q --force $SVN_HOME$LASTFILE $DSE_PATH/$FILE_NAME_REV
|
|
ERR=$?
|
|
else
|
|
#echo "svn export -q --force $SVN_HOME$LASTFILE $DSE_PATH/$FILE_NAME$FILE_EXT"
|
|
svn export -q --force $SVN_HOME$LASTFILE $DSE_PATH/$FILE_NAME$FILE_EXT
|
|
ERR=$?
|
|
fi
|
|
|
|
if [ $ERR -ne 0 ]
|
|
then
|
|
echo "error get tagging file"
|
|
exit 1
|
|
fi
|
|
#echo "OK"
|
|
|
|
|