Changeset 1122


Ignore:
Timestamp:
2012-08-04T05:06:15+02:00 (2 years ago)
Author:
moo
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.