42.SVN

linux 에서 crontab로 SVN적용하기

0102734 2011. 2. 18. 14:21

#!/bin/bash


##본 script 파일명 

SCRIPT_NAME=`basename $0`


function help() {

    echo

    echo "Usage: ${SCRIPT_NAME} <svn_repo>"

    echo

    echo "Parameters:"

    echo "  <svn_repo>     - svn repository root dir"

    echo

    echo "Examples:"

    echo "  ${SCRIPT_NAME} /opt/test04"

    echo

    exit -1

}


# parameter min 1

if [ ! $# -ge 1 ]; then

    help

fi



# parameter setting

PATH_TO_REPO=$1


# Check if they are empty and if they are quit

if [[ -z "$PATH_TO_REPO" ]]; then

    help

fi


# Check if the repo path exists, and if it's a valid SVN repository

if [ ! -d "$PATH_TO_REPO" ]; then

    echo "Directory ${PATH_TO_REPO} doesn't exist."

    echo "Exiting."

    exit -1

fi


# today  YYYYMM  ex) 2014-02-24  is 201402

# dir  YYYYMM 

# file is YYYYMMDDHHMM

tdy_YYYYMM=$(date +"%Y%m")

tdy_YYYYMMDD=$(date +"%Y%m%d%H%M")



#####################################################################################

### ADD ###

#####################################################################################


INDADDALL="y";

ADDANS="y";

UPDATEANS="y";

COMMITANS="y";


for CURRENT in `svn st $PATH_TO_REPO | grep ? | awk -F " " '{print $2}'`; 

do 

if [ $INDADDALL = "n" ] 

then

echo "### ADD #####################################################";

echo "??? Are you want to add $CURRENT file ? (y/n/yesall/skip)...";

read ADDANS;

fi

if [ $ADDANS = "n" ] 

then

echo "!!! $CURRENT...not added!"

fi


if [ $ADDANS = "yesall" ] 

then

INDADDALL="y";

fi 


if [ $ADDANS = "skip" ]

then

break

fi


if [ $ADDANS = "y" ] 

then

svn add $CURRENT

#echo "svn add $CURRENT...added!";

fi

if [ $INDADDALL = "y" ] 

then

svn add $CURRENT

#echo "svn add $CURRENT...added!";

fi


sleep 1

done




#####################################################################################

### UPDATE ###

#####################################################################################


echo "### UPDATE ########################################################";

echo "??? Are you want to UPDATE your working directory..........(y/skip)"

svn update $PATH_TO_REPO


#####################################################################################

### COMMIT ###

#####################################################################################


echo "### COMMIT #############################################################";

echo "??? Are you want to COMMIT whith a comitment message..........(y/n/skip)"

echo "??? Enter your commitment MESSAGE....... "

svn commit -m "without_message_commited_on_$tdy_YYYYMMDD"  $PATH_TO_REPO


#####################################################################################

#####################################################################################



'42.SVN' 카테고리의 다른 글

SVN + crontab  (0) 2011.02.17