Changeset 1122 in svn for trunk


Ignore:
Timestamp:
2012-08-04T05:06:15+02:00 (3 years ago)
Author:
Xuefer
Message:

devel: cleanup run

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/devel/run

    r1120 r1122  
    11#!/bin/bash
    22# this script is for developers only
    3 stopfpm() {
     3
     4stopfpm() { # {{{1
    45    if [[ -f $pidfile ]]; then
    56        pid=`cat $pidfile 2>/dev/null || true`
     
    1213}
    1314
    14 set -e
    15 MAKE=/usr/bin/make
    16 
    17 . devel/run.cfg
    18 if [[ $# -gt 0 ]]; then
    19     action=$1
    20     shift
    21     if [[ $# -gt 0 ]]; then
    22         args=("$@")
    23     elif [[ $action = "make" ]]; then
    24         args=()
    25     fi
    26 fi
    27 
    28 case "$action" in
    29 prep*)
    30     exec $MAKE -f devel/prepare.mak "${args[@]}"
    31     ;;
    32 po2php)
    33     ./run mergepo "${args[0]}"
     15xtest() { # {{{1
     16    $MAKE -f devel/test.mak
     17}
     18
     19prep() { # {{{1
     20    $MAKE -f devel/prepare.mak "$@"
     21}
     22
     23mergepo() { # {{{1
     24    prep
     25    local i
     26    find htdocs -iname '*.po' | while read -r i; do
     27        if [[ -f $i-merged ]]; then
     28            mv $i-merged $i
     29        fi
     30    done
     31}
     32
     33po2php() { # {{{1
     34    mergepo
     35
     36    local phpfile
    3437    find htdocs -iname '*.po' | while read -r i; do
    3538        phpfile=${i/.po/.php}
     
    3740        mv $phpfile.tmp $phpfile
    3841    done
    39     exit
    40     ;;
    41 mergepo)
    42     ./run prep "${args[0]}"
    43     find htdocs -iname '*.po' | while read -r i; do
    44         if [[ -f $i-merged ]]; then
    45             mv $i-merged $i
    46         fi
    47     done
    48     exit
    49     ;;
    50 tags)
    51     rm -f tags
    52     exec $MAKE -f devel/prepare.mak tags "${args[@]}"
    53     ;;
    54 dep*)
     42}
     43
     44updatedeps() { # {{{1
    5545    pwd=$(readlink -f "$(pwd)")
    5646    builddir=$(readlink -f ../trunk-php5-debug-zts)
     
    9787        echo
    9888    done > Makefile.frag.deps
    99     exit
    100     ;;
    101 xtest)
    102     exec $MAKE -f devel/test.mak
    103     ;;
    104 esac
    105 
    106 case "${args[0]}" in
    107 fpm)
    108     pidfile=devel.pid
    109     stopfpm
    110     ;;
    111 stopfpm)
    112     pidfile=devel.pid
    113     stopfpm
    114     exit
    115     ;;
    116 esac
    117 
     89}
     90# }}}1
     91
     92set -e
     93MAKE=/usr/bin/make
     94
     95. devel/run.cfg
     96PHPSDIR=${PHPSDIR:-$HOME/test}
     97
     98if [[ $# -eq 0 ]]; then
     99    set -- "$action" "${args[@]}"
     100fi
     101
     102if [[ $# -gt 0 ]]; then
     103    action=$1
     104    shift
     105fi
     106
     107# devel actions
     108case "$action" in
     109prep*) prep "$@"; exit;;
     110tags) rm -f tags; prep tags "$@"; exit;;
     111po2php) po2php; exit;;
     112mergepo) mergepo; exit;;
     113dep*) updatedeps; exit;;
     114xtest) xtest; exit;;
     115esac
     116
     117case "$1" in
     118fpm) pidfile=devel.pid; stopfpm;;
     119stopfpm) pidfile=devel.pid; stopfpm; exit;;
     120esac
     121
     122# process each $dirs
    118123basename=$(basename $(pwd))
    119124if echo $basename | grep -- - >/dev/null; then :; else
     
    127132
    128133        pwd
    129         $0 "$action" "${args[@]}"
     134        $0 "$action" "$@"
    130135    done
    131136    exit
     
    136141xcachesrcdir=../$xcachebasename
    137142pidfile=../$xcachebasename/devel.pid
    138 
    139 case "$action" in
    140 phpize)
    141     if [[ -r Makefile ]]; then
    142         $MAKE xcachesvnclean || true
    143     fi
    144     ;;
    145 esac
    146 
    147 rm -f php-src
    148 find -L . -action l | xargs rm -fv
    149 lndir "$xcachesrcdir" >/dev/null || true
    150 find . -iname .\*.swp | xargs rm -f
    151 ln -sf ~/src/php/$phpbasename php-src
    152 for i in ~/src/php/$phpbasename/sapi/cgi/php{,-cgi}; do
    153     if [[ -r $i ]]; then
    154         ln -sf "$i" php-cgi
    155     fi
    156 done
    157 ln -sf ~/src/php/$phpbasename/sapi/cli/php php-cli
    158 ln -sf ~/src/php/$phpbasename/sapi/fpm/php-fpm php-fpm
    159 
    160 case "$action" in
    161 phpize)
    162     PHPDIRS=${PHPDIRS:-$HOME/test}
    163     if [[ ! -x $PHPDIRS/$phpbasename/bin/phpize ]]; then
    164         echo $PHPDIRS/$phpbasename/bin/phpize not found
     143phpize() { # {{{1
     144    if [[ ! -x $PHPSDIR/$phpbasename/bin/phpize ]]; then
     145        echo $PHPSDIR/$phpbasename/bin/phpize not found
    165146        exit
    166147    fi
    167     export PATH=$PHPDIRS/$phpbasename/bin:$PATH
     148    export PATH=$PHPSDIR/$phpbasename/bin:$PATH
    168149    phpize --clean \
    169150    && phpize \
     
    177158        --enable-xcache-test \
    178159        --enable-xcache-constant
    179     exit
    180     ;;
    181 make)
    182     MAKEARGS=("$@")
    183     ;;
    184 esac
    185 
    186 LANG=C $MAKE $MAKEOPTS "${MAKEARGS[@]}" 2>&1 \
    187 | sed -ur \
    188     -e 's#Werror=implicit-function-declaration#We/rror=i/mplicit-function-declaration#' \
    189     -e 's#-pedantic-errors#-pedantic-e/rrors#' \
    190     -e 's#\./xc_processor\.h#'$PWD'/xc_processor.h#' \
    191     -e 's#\./xc_processor\.c\.h#'$PWD'/xc_processor.c.h#' \
    192 | hi error implicit warn FAIL
    193 ret=${PIPESTATUS[0]}
    194 if [[ $ret -ne 0 || $action = make ]]; then
    195     exit $ret
    196 fi
    197 
    198 if [[ -z ${args[0]} ]]; then
    199     args=(devel.php)
     160}
     161make() { # {{{1
     162    LANG=C $MAKE $MAKEOPTS "$@" 2>&1 \
     163    | sed -ur \
     164        -e 's#Werror=implicit-function-declaration#We/rror=i/mplicit-function-declaration#' \
     165        -e 's#-pedantic-errors#-pedantic-e/rrors#' \
     166        -e 's#\./xc_processor\.h#'$PWD'/xc_processor.h#' \
     167        -e 's#\./xc_processor\.c\.h#'$PWD'/xc_processor.c.h#' \
     168    | hi error implicit warn FAIL
     169    ret=${PIPESTATUS[0]}
     170    if [[ $ret -ne 0 ]]; then
     171        exit $ret
     172    fi
     173}
     174# }}}
     175
     176# prepare {{{1
     177case "$action" in
     178phpize)
     179    if [[ -r Makefile ]]; then
     180        $MAKE xcachesvnclean || true
     181    fi
     182    ;;
     183esac
     184
     185rm -f php-src
     186find -L . -type l | xargs rm -fv
     187lndir "$xcachesrcdir" >/dev/null || true
     188find . -iname .\*.swp | xargs rm -f
     189ln -sf ~/src/php/$phpbasename php-src
     190for i in ~/src/php/$phpbasename/sapi/cgi/php{,-cgi}; do
     191    if [[ -r $i ]]; then
     192        ln -sf "$i" php-cgi
     193    fi
     194done
     195ln -sf ~/src/php/$phpbasename/sapi/cli/php php-cli
     196ln -sf ~/src/php/$phpbasename/sapi/fpm/php-fpm php-fpm
     197
     198case "$action" in
     199phpize) phpize; exit;;
     200make) make "$@"; exit;;
     201*) make;;
     202esac
     203# }}}1
     204
     205if [[ -z $1 ]]; then
     206    set -- devel.php
    200207fi
    201208
    202209cmd=()
    203210tracer=()
     211
     212# run utils {{{1
     213case "$action" in
     214dc)
     215    exec ./php-cli -c devel.ini ./bin/phpdc.phpr $@ | tee decompiled.php
     216    ;;
     217dop)
     218    exec ./php-cli -c devel.ini ./bin/phpdop.phpr $@
     219    ;;
     220retest)
     221    exec $MAKE xcachetest "$@" TESTS="`grep '^/.*\.phpt$' php_test_results_*.txt | uniq | xargs`"
     222    ;;
     223test)
     224    case "$1" in
     225    *.phpt)
     226        exec $MAKE xcachetest TEST_ARGS=-v TESTS="$*"
     227        ;;
     228    */)
     229        exec $MAKE xcachetest TESTS="$*"
     230        ;;
     231    *)
     232        exec $MAKE xcachetest
     233        ;;
     234    esac
     235    ;;
     236esac
     237# }}}
     238# pick sapi {{{1
    204239case "$basename" in
    205240*-apache1*)
     
    210245    ;;
    211246*)
    212     case "${args[0]}" in
     247    case "$1" in
    213248    fcgi)
    214249        cmd=(./php-cgi -q -c devel.ini)
    215         args=(-b 1026)
     250        set -- -b 1026
    216251        ;;
    217252    fpm)
    218253        echo Starting fpm ...
    219254        cmd=(./php-fpm -c devel.ini -y devel.fpm -g $(readlink -f $pidfile))
    220         args=()
     255        set --
    221256        ;;
    222257    *)
     
    227262    "${cmd[@]}" -v || true
    228263esac
    229 
     264# }}}
     265# pick action {{{1
    230266case "$action" in
    231267ltr*)
     
    244280    tracer=(valgrind --gen-suppressions=all)
    245281    ;;
    246 dc)
    247     exec ./php-cli -c devel.ini ./bin/phpdc.phpr "${args[@]}" | tee decompiled.php
    248     ;;
    249 dop)
    250     exec ./php-cli -c devel.ini ./bin/phpdop.phpr "${args[@]}"
    251     ;;
    252 retest)
    253     exec $MAKE xcachetest "$@" TESTS="`grep '^/.*\.phpt$' php_test_results_*.txt | uniq | xargs`"
    254     ;;
    255 test)
    256     case "${args[0]}" in
    257     *.phpt)
    258         exec $MAKE xcachetest TEST_ARGS=-v TESTS="${args[*]}"
    259         ;;
    260     */)
    261         exec $MAKE xcachetest TESTS="${args[@]}"
    262         ;;
    263     *)
    264         exec $MAKE xcachetest
    265         ;;
    266     esac
    267     ;;
    268 esac
    269 
     282esac
     283
     284# run {{{1
    270285export XCACHE_SKIP_FCGI_WARNING=1
    271 commandLine=("${tracer[@]}" "${cmd[@]}" "${args[@]}")
     286commandLine=("${tracer[@]}" "${cmd[@]}" "$@")
    272287
    273288case "${cmd[0]}" in
     
    276291    "${commandLine[@]}"
    277292    echo -n "Ctrl-C to stop"
    278     trap stopfpm SIGINT SIGTERM
     293    trap stopfpm SIGINT SIGTERM exit
    279294    cat > /dev/null || true
     295    stopfpm
    280296    ;;
    281297*)
     
    283299    ;;
    284300esac
     301# }}}
Note: See TracChangeset for help on using the changeset viewer.