File: svntest-update.sh

package info (click to toggle)
subversion 1.4.2dfsg1-3
  • links: PTS
  • area: main
  • in suites: etch
  • size: 37,284 kB
  • ctags: 32,888
  • sloc: ansic: 406,472; python: 38,378; sh: 15,438; cpp: 9,604; ruby: 8,313; perl: 5,308; java: 4,576; lisp: 3,860; xml: 3,298; makefile: 856
file content (111 lines) | stat: -rwxr-xr-x 2,894 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/bin/sh

EXEC_PATH="`dirname $0`"

# Source the configuration file.
. "$EXEC_PATH/svntest-config.sh"

# Compute local vars
LOG_FILE="$LOG_FILE_PREFIX.update"

CVS_UPDATE_REGEXP_1='^[UPARMC] \(\(docs\)\|\(STATUS\)\|\(CHANGES\)\)'
CVS_UPDATE_REGEXP_2='^[UPARMC] [A-Za-z]'

SVN_UPDATE_REGEXP_1=\
'^[ADUCG]\([ADUCG]\| \) \(  \)\?\(\(doc\)\|\(notes\)\|\(www\)\|\(contrib\)'\
'\|\(tools\)\|\(packages\)\|\(STATUS\)\)'

SVN_UPDATE_REGEXP_2='^[ADUCG]\([ADUCG]\| \) \(  \)\?[A-Za-z]'

#
# Possible values of the status file:
#    0 == rebuild needed
#    timestamp == timestamp of last build
#
# arg1 := mode of operation <CVS|SVN>
# arg2 := update log file
# arg3 := rebuild flag file
#
UPDATE_REBUILD_FLAG () {
    local MODE="$1"
    local UP_LOGFILE="$2"
    local RB_FILE="$3"
    local UP_STATUS=1

    if [ $MODE = "SVN" ]; then
        REGEXP_1="$SVN_UPDATE_REGEXP_1"
        REGEXP_2="$SVN_UPDATE_REGEXP_2"
    elif [ $MODE = "CVS" ]; then
        REGEXP_1="$CVS_UPDATE_REGEXP_1"
        REGEXP_2="$CVS_UPDATE_REGEXP_2"
    fi

    $GREP -v "$REGEXP_1" "$UP_LOGFILE" \
        | $GREP -q "$REGEXP_2" > /dev/null 2>&1
    UP_STATUS="$?"
    
    if test ! -f "$RB_FILE" 
    then
        echo "0" > "$RB_FILE"
    else
        if test "$UP_STATUS" -eq 0
        then
            echo "0" > "$RB_FILE"
        fi
    fi
}

CLEAN_WORKING_COPY () {

    $SVN st --no-ignore | $GREP '^\(?\|I\) *' | \
        $SED 's@\(?\|I\) *@@' | $XARGS $RM_RF 

    return 0
}

# Update apr, apr-util, httpd
START "update $APR_NAME" "Updating $APR_NAME..."
cd $APR_SOURCE && CLEAN_WORKING_COPY && $SVN update > "$LOG_FILE_DIR/LOG_up_apr" 2>&1
test $? = 0 || {
    FAIL_LOG "$LOG_FILE_DIR/LOG_up_apr"
    FAIL
}
PASS
UPDATE_REBUILD_FLAG SVN "$LOG_FILE_DIR/LOG_up_apr" "$TEST_ROOT/$APR_NAME.rb"

START "update $APU_NAME" "Updating $APU_NAME..."
cd $APU_SOURCE &&  CLEAN_WORKING_COPY && $SVN update > "$LOG_FILE_DIR/LOG_up_apu" 2>&1
test $? = 0 || {
    FAIL_LOG "$LOG_FILE_DIR/LOG_up_apu"
    FAIL
}
PASS
UPDATE_REBUILD_FLAG SVN "$LOG_FILE_DIR/LOG_up_apu" "$TEST_ROOT/$APU_NAME.rb"

START "update $HTTPD_NAME" "Updating $HTTPD_NAME..."
cd $HTTPD_SOURCE &&  CLEAN_WORKING_COPY && $SVN update > "$LOG_FILE_DIR/LOG_up_httpd" 2>&1
test $? = 0 || {
    FAIL_LOG "$LOG_FILE_DIR/LOG_up_httpd"
    FAIL
}
PASS
UPDATE_REBUILD_FLAG SVN "$LOG_FILE_DIR/LOG_up_httpd" "$TEST_ROOT/$HTTPD_NAME.rb"

# Update svn
START "update subversion" "Updating Subversion..."
cd $SVN_SOURCE &&  CLEAN_WORKING_COPY && $SVN update $FORCE_UP_REV_SVN > "$LOG_FILE_DIR/LOG_up_svn" 2>&1
test $? = 0 || {
    FAIL_LOG "$LOG_FILE_DIR/LOG_up_svn"
    FAIL
}
PASS
UPDATE_REBUILD_FLAG SVN "$LOG_FILE_DIR/LOG_up_svn" "$TEST_ROOT/$SVN_NAME.rb"

# Run autogen.sh
START "autogen.sh" "Running autogen.sh..."
cd $SVN_SOURCE && ./autogen.sh > "$LOG_FILE_DIR/LOG_svn_autogen" 2>&1
test $? = 0 || {
    FAIL_LOG "$LOG_FILE_DIR/LOG_svn_autogen"
    FAIL
}
PASS