219 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			219 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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 +9) ]]; then #run every 10 mins' '  rm -f $OPENSHIFT_DATA_DIR/last_run' '  touch $OPENSHIFT_DATA_DIR/last_run' '  # The command(s) that you want to run every 10 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_DIR}.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/markers/hot_deploy"
 | |
| 
 | |
| ### else
 | |
| 
 | |
| ### echo "The hot deploy marker already exists"
 | |
| 
 | |
| ### fi
 | |
| 
 | |
| ####
 | |
| 
 | |
| # Hubzilla configuration - changes to default settings
 | |
| # to make Hubzilla on OpenShift a more pleasant experience 
 | |
| echo "Changing default configuration to conserve space and autocreate a social private channel upon account registration"
 | |
| cd ${OPENSHIFT_REPO_DIR}
 | |
| util/config system auto_channel_create
 | |
| util/config system default_permissions_role social_private
 | |
| util/config system workflow_channel_next channel
 | |
| util/config system expire_delivery_reports 3
 | |
| util/config system feed_contacts 0
 | |
| util/config system diaspora_enabled 0
 | |
| util/config system disable_discover_tab 1
 | |
| util/config directory safemode 0
 | |
| util/config directory globaldir 1
 | |
| util/config directory pubforums 0
 | |
| 
 | |
| # Hubzill addons
 | |
| echo "Try to add or update Hubzilla addons"
 | |
| cd ${OPENSHIFT_REPO_DIR}
 | |
| util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git HubzillaAddons 
 | |
| 
 | |
| # Hubzilla themes - unofficial repo
 | |
| echo "Try to add or update Hubzilla themes - unofficial repo"
 | |
| cd ${OPENSHIFT_REPO_DIR}
 | |
| util/add_theme_repo https://github.com/DeadSuperHero/hubzilla-themes.git DeadSuperHeroThemes insecure
 | |
| 
 | |
| # Hubzilla ownMapp - unofficial repo
 | |
| echo "Try to add or update Hubzilla ownMapp - unofficial repo"
 | |
| cd ${OPENSHIFT_REPO_DIR}
 | |
| util/add_addon_repo https://gitlab.com/zot/ownmapp.git ownMapp insecure
 | |
| 
 | |
| # Hubzilla Chess - unofficial repo
 | |
| echo "Try to add or update Hubzilla chess - unofficial repo"
 | |
| cd ${OPENSHIFT_REPO_DIR}
 | |
| util/add_addon_repo https://gitlab.com/zot/hubzilla-chess.git Chess insecure
 | |
| 
 | |
| # Hubzilla Hubsites - unofficial repo
 | |
| echo "Try to add or update Hubzilla Hubsites - unofficial repo"
 | |
| cd ${OPENSHIFT_REPO_DIR}
 | |
| util/add_addon_repo https://gitlab.com/zot/hubsites.git Hubsites insecure
 |