개 선 된 SVN 업데이트 스 크 립 트

2425 단어 linuxSVNshell각본
이번 개선 내용 은 출력 이 업데이트 가 필요 할 때 컬러 로 출력 하 는 것 입 니 다.
업데이트 할 코드 는 몇 개의 창고 에 대응 하기 때문에 각 모듈 의 로 컬 작업 공간 은 현재 디 렉 터 리 코드 를 업데이트 하 는 스 크 립 트 가 있어 야 합 니 다. 다시 하나의 스 크 립 트 로 코드 업 데 이 트 를 호출 해 야 합 니 다.그래서 저 는 작업 디 렉 터 리 에 있 는 루트 디 렉 터 리 에 스 크 립 트 를 썼 고 다른 몇 개의 모듈 디 렉 터 리 에 소프트 링크 를 만들어 서 이 스 크 립 트 를 가 리 켰 습 니 다.
코드 는 다음 과 같 습 니 다:
#!/bin/sh
revision=`svn info |grep "Last Changed Rev:" |awk '{print $4}'`
echo "the revision is $revision"
URL=`svn info |grep URL: |awk '{print $2}'`
echo "the url is $URL"
svnRevision=`svn info $URL |grep "Last Changed Rev:" |awk '{print $4}'`
echo "the revision in svn is $svnRevision"
if [[ $revision < $svnRevision ]] ; then
    echo -e "\033[0;31;40m need svn up \033[0m"
    svn up
    echo "svn up finish"
    exit 1
else
    echo -e "\033[0;38;40m no need svn up \033[0m"
    exit 0
fi

그 다음 에 스 크 립 트 를 호출 하여 위의 스 크 립 트 를 호출 하여 코드 디 렉 터 리 를 업데이트 하고 실행 결 과 를 현재 시간 으로 명 명 된 로그 파일 에 출력 합 니 다.물론 위 에서 출력 한 것 은 '\033 [0; 31; 40m need svn up\033 [0m' 와 같이 cat 로 보면 색깔 이 있 습 니 다.
스 크 립 트 코드 는 다음 과 같 습 니 다:
#!/bin/bash
ROOT=`pwd`
LOGDIR=$ROOT/logsvn
if [ ! -d "$LOGDIR" ]; then
    mkdir $LOGDIR
fi
FILENAME=$LOGDIR/`date |sed -n 's/\://pg' |awk '{print $2 $3 $4}'`.log
function svnUp()
{
    echo "check $1"
    echo "check $1" >> $FILENAME
    cd $ROOT/$1
    ./svnUpCheck.sh >> $FILENAME
    if [[ $? = 1 ]]; then 
        echo "svn up"
    fi  
    revision=`svn info |grep "Last Changed Rev:" |awk '{print $4}'`
    changedate=`svn info |grep "Last Changed Date:" |awk '{print $4 "\x20" $5}'`
    echo "$revision $changedate" >> $FILENAME
    date >> $FILENAME
    echo >> $FILENAME
}

svnUp android
svnUp linux
svnUp system
svnUp tvserver/common_magellan
svnUp image_file_creator
svnUp tvserver/system

첫 번 째 스 크 립 트 는 변경 하지 않 고 svn 작업 공간 에 두 면 성공 적 으로 실 행 됩 니 다.
두 번 째 스 크 립 트 는 아래 호출 시 들 어 오 는 매개 변 수 를 svn 작업 디 렉 터 리 로 수정 한 후에 도 다른 항목 에 사용 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기