#!/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) fi (cd $ROOT/libphutil && git pull) (cd $ROOT/arcanist && git pull) (cd $ROOT/phabricator && git pull && git submodule update --init) ### RUN TESTS ################################################################## # 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__/) ### 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 ### CYCLE APACHE AND DAEMONS ################################################### # 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