#!/bin/bash # This deploy hook gets executed after dependencies are resolved and the # build hook has been run but before the application has been started back # up again. This script gets executed directly, so it could be python, php, # ruby, etc. # Bash help: http://www.panix.com/~elflord/unix/bash-tute.html # For information about action hooks supported by OpenShift, consult the documentation: # http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory #### # Hubzilla specific deploy script # Place this file in /.openshift/action_hooks/ (The .openshift folder will be in the root of your repo) # The file name should be "deploy" such that you have: # .openshift/action_hooks/deploy # Conventions: Vars in curley braces have the slash after implied so no need to add it. # e.g. ${OPENSHIFT_REPO_DIR}php/foobar = /repo/php/foobar # See all OpenShift vars here: # https://www.openshift.com/developers/openshift-environment-variables # HME - NOTE - leftover from original openshift-drupal-deploy # In config.php you can leverage the enviroment variables like this: # // Define env vars. # if (array_key_exists('OPENSHIFT_APP_NAME', $_SERVER)) { # $src = $_SERVER; # } else { # $src = $_ENV; # } # # $conf["file_private_path"] = $src['OPENSHIFT_DATA_DIR'] . "private"; # $conf["file_temporary_path"] = $src['OPENSHIFT_DATA_DIR'] . "tmp"; #### # Start Deploy echo "Starting Deploy..." # Let's create the Hubzilla files directory in the Openshift data folder ($OPENSHIFT_DATA_DIR). echo "Check for the files directory called store, if not created - create it" if [ ! -d ${OPENSHIFT_DATA_DIR}store ]; then mkdir -p ${OPENSHIFT_DATA_DIR}"store/[data]/smarty3" echo "Done creating files directory" else echo "The files directory called store already exists" fi #### # Set permissions on the files directory. echo "Now chmod 777 -R files" chmod -R 777 ${OPENSHIFT_DATA_DIR}store echo "chmod done, permissions set to 777" #### # Symlink our files folder to the repo. # Note the "php" directory below seems to be the best way to serve OpenShift files. # This is good as that allows us for directories one level above such as tmp and private echo "Create sym links for writeable directories" ln -sf ${OPENSHIFT_DATA_DIR}store ${OPENSHIFT_REPO_DIR}store echo "Files sym links created" #### # Copy .htconfig.php from the repo, rename it and place it in the data directory. # if it's there already, skip it. if [ ! -f ${OPENSHIFT_DATA_DIR}.htconfig.php ]; then cp ${OPENSHIFT_REPO_DIR}.htconfig.php ${OPENSHIFT_DATA_DIR}.htconfig.php echo ".htconfig.php copied." else echo "Looks like the .htconfig.php file is already there, we won't overwrite it." fi #### # symlink the .htconfig.php file. echo "Create sym link for .htconfig.php" ln -sf ${OPENSHIFT_DATA_DIR}.htconfig.php ${OPENSHIFT_REPO_DIR}.htconfig.php echo ".htconfig.php symlink created" #### # Copy .htaccess from the repo, rename it and place it in the data directory. # if it's there already, skip it. if [ ! -f ${OPENSHIFT_DATA_DIR}.htaccess ]; then cp ${OPENSHIFT_REPO_DIR}.htaccess ${OPENSHIFT_DATA_DIR}.htaccess echo ".htaccess copied." else echo "Looks like the .htaccess file is already there, we won't overwrite it." fi #### # symlink the .htaccess file. echo "Create sym link for .htaccess" ln -sf ${OPENSHIFT_DATA_DIR}.htaccess ${OPENSHIFT_REPO_DIR}.htaccess echo ".htaccess symlink created" #### echo "Check for the poller at .openshift/cron/minutely/poller , if not created - create it" if [ ! -f ${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller ]; then printf '%s\n' '#!/bin/bash' 'if [ ! -f $OPENSHIFT_DATA_DIR/last_run ]; then' ' touch $OPENSHIFT_DATA_DIR/last_run' 'fi' 'if [[ $(find $OPENSHIFT_DATA_DIR/last_run -mmin +4) ]]; then #run every 5 mins' ' rm -f $OPENSHIFT_DATA_DIR/last_run' ' touch $OPENSHIFT_DATA_DIR/last_run' ' # The command(s) that you want to run every 5 minutes' 'cd /var/lib/openshift/${OPENSHIFT_APP_UUID}/app-root/repo; /opt/rh/php54/root/usr/bin/php include/poller.php' 'fi' >${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller echo "Done creating file .openshift/cron/minutely/poller" else echo "The poller already exists" fi #### # Set permissions on the poller script to make it executable. echo "Now chmod 777 -R poller" chmod -R 777 ${OPENSHIFT_REPO}.openshift/cron/minutely/poller echo "chmod done, permissions set to 777 on poller script." #### echo "Check for the hot deploy marker at .openshift/markers/hot_deploy , if not created - create it" if [ ! -f ${OPENSHIFT_REPO_DIR}.openshift/markers/hot_deploy ]; then touch ${OPENSHIFT_REPO_DIR}.openshift/markers/hot_deploy echo "Done creating file .openshift/cron/minutely/poller" else echo "The hot deploy marker already exists" fi ####