#!/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 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 # 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