aboutsummaryrefslogtreecommitdiffstats
path: root/.openshift/action_hooks/deploy
blob: c3bdf575ab3869898e364dbb36c4af6a7e0f4f8e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
#!/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
echo "Try to add or update Hubzilla themes"
cd ${OPENSHIFT_REPO_DIR}
util/add_theme_repo https://github.com/DeadSuperHero/hubzilla-themes.git DeadSuperHeroThemes 

# Hubzilla ownMapp
echo "Try to add or update Hubzilla ownMapp"
cd ${OPENSHIFT_REPO_DIR}
util/add_addon_repo https://gitlab.com/zot/ownmapp.git ownMapp

# Hubzilla Chess
echo "Try to add or update Hubzilla chess "
cd ${OPENSHIFT_REPO_DIR}
util/add_addon_repo https://gitlab.com/zot/hubzilla-chess.git Chess

# Hubzilla Hubsites
echo "Try to add or update Hubzilla Hubsites"
cd ${OPENSHIFT_REPO_DIR}
util/add_addon_repo https://gitlab.com/zot/hubsites.git Hubsites