diff --git a/scripts/install/update_phabricator.sh b/scripts/install/update_phabricator.sh index 42b716b001..6c80765f17 100755 --- a/scripts/install/update_phabricator.sh +++ b/scripts/install/update_phabricator.sh @@ -1,71 +1,78 @@ #!/bin/sh set -e set -x # This is an example script for updating Phabricator, similar to the one used to # update . It might not work perfectly on your # system, but hopefully it should be easy to adapt. # NOTE: This script assumes you are running it from a directory which contains # arcanist/, libphutil/, phabricator/, and possibly diviner/. ROOT=`pwd` # You can hard-code the path here instead. - ### UPDATE WORKING COPIES ###################################################### if [ -e $ROOT/diviner ] then - (cd $ROOT/diviner && git pull) + cd $ROOT/diviner + git pull fi -(cd $ROOT/libphutil && git pull) -(cd $ROOT/arcanist && git pull) -(cd $ROOT/phabricator && git pull && git submodule update --init) - +cd $ROOT/libphutil +git pull -### RUN TESTS ################################################################## +cd $ROOT/arcanist +git pull -# This is an acceptance test that makes sure all symboles can be loaded to -# avoid issues like missing methods in descendants of abstract base class. -(cd $ROOT/phabricator && ../arcanist/bin/arc unit src/infrastructure/__tests__/) +cd $ROOT/phabricator +git pull +git submodule update --init -### GENERATE DOCUMENTATION ##################################################### +### RUN TESTS ################################################################## -# This generates documentation if you have diviner/ checked out. You generally -# don't need to do this unless you're contributing to Phabricator and want to -# preview some of the amazing documentation you've just written. -if [ -e $ROOT/diviner ] -then - (cd $ROOT/diviner && $ROOT/diviner/bin/diviner .) - (cd $ROOT/libphutil && $ROOT/diviner/bin/diviner .) - (cd $ROOT/arcanist && $ROOT/diviner/bin/diviner .) - (cd $ROOT/phabricator && $ROOT/diviner/bin/diviner .) -fi +# This is an acceptance test that makes sure all symbols can be loaded to +# avoid issues like missing methods in descendants of abstract base classes. +cd $ROOT/phabricator +../arcanist/bin/arc unit src/infrastructure/__tests__/ ### CYCLE APACHE AND DAEMONS ################################################### +# Stop daemons. +$ROOT/phabricator/bin/phd stop + # Stop Apache. Depening on what system you're running, you may need to use # 'apachectl' or something else to cycle apache. sudo /etc/init.d/httpd stop -# Stop daemons. -$ROOT/phabricator/bin/phd stop - # Upgrade the database schema. $ROOT/phabricator/scripts/sql/upgrade_schema.php -f # Restart apache. sudo /etc/init.d/httpd start # Restart daemons. Customize this to start whatever daemons you're running on # your system. # $ROOT/phabricator/bin/phd repository-launch-master # $ROOT/phabricator/bin/phd launch metamta # $ROOT/phabricator/bin/phd launch garbagecollector # $ROOT/phabricator/bin/phd launch 4 taskmaster # $ROOT/phabricator/bin/phd launch ircbot /config/bot.json + + +### GENERATE DOCUMENTATION ##################################################### + +# This generates documentation if you have diviner/ checked out. You generally +# don't need to do this unless you're contributing to Phabricator and want to +# preview some of the amazing documentation you've just written. +if [ -e $ROOT/diviner ] +then + cd $ROOT/diviner && $ROOT/diviner/bin/diviner . + cd $ROOT/libphutil && $ROOT/diviner/bin/diviner . + cd $ROOT/arcanist && $ROOT/diviner/bin/diviner . + cd $ROOT/phabricator && $ROOT/diviner/bin/diviner . +fi