4 # This is distmaker script for CiviCRM
6 # "Protected by an electric fence and copyright control."
7 # Thanks to Kleptones for moral support when writing this.
9 # You need to ensure the following variables are defined. They are traditionally defined
10 # in distmaker.conf but you can also defined them as an environment variable or by
11 # calling the script with env DM_REF_CORE=4.7 (for example).
13 # DM_SOURCEDIR=/home/user/svn/civicrm <- sources
14 # DM_GENFILESDIR=/home/user/generated <- generated files
15 # DM_TMPDIR=/tmp <- temporary files (will be deleted afterwards)
16 # DM_TARGETDIR=/tmp/outdir <- target dir for tarballs
17 # DM_REF_CORE=master <- Git branch/tag name
20 # DM_PHP=/opt/php5/bin/php <- php5 binary
21 # DM_RSYNC=/usr/bin/rsync <- rsync binary
22 # DM_VERSION=trunk.r1234 <- what the version number should be
23 # DM_ZIP=/usr/bin/zip <- zip binary
26 # ========================================================
28 # ========================================================
31 # Where are we called from?
35 source "$P/dists/common.sh"
37 # Set no actions by default
53 echo " distmaker.sh OPTION"
55 echo "Options available:"
56 echo " all - generate all available tarballs"
57 echo " l10n - generate internationalization data"
58 echo " Backdrop - generate Backdrop PHP5 module"
59 echo " Drupal|d5 - generate Drupal7 PHP5 module"
60 echo " Drupal6|d5.6 - generate Drupal6 PHP5 module"
61 echo " d7_dir - generate Drupal7 PHP5 module, but output to a directory, no tarball"
62 echo " Joomla|j5 - generate Joomla PHP5 module"
63 echo " WordPress|wp5 - generate Wordpress PHP5 module"
64 echo " sk - generate Drupal StarterKit module"
66 echo "You also need to have distmaker.conf file in place."
67 echo "See distmaker.conf.dist for example contents."
68 echo "Alternatively you can set the required variables as "
69 echo "environment variables, eg. for your machine or by calling "
70 echo "this script using "
72 echo "env DM_TARGETDIR=/path/to/output/dir/for/files/or/tarball distmaker.sh all"
74 echo "optional environmentals:"
76 echo " DM_GENFILESDIR (default $TMPDIR/genfiles)"
77 echo " DM_TARGETDIR= (default $TMPDIR/civicrm)"
78 echo " DM_OUTPUTDIR= (default $DM_TARGETDIR/civicrm_files)"
83 THIS_DIR
="$( cd "$
( dirname "${BASH_SOURCE[0]}" )" && pwd )";
85 # Check if config is ok.
88 if [ -f $P/distmaker.conf
] ; then
89 source "$P/distmaker.conf"
92 if [ -z $DM_SOURCEDIR ] ; then
93 DM_SOURCEDIR
="$THIS_DIR/..";
94 echo "Setting source dir to $DM_SOURCEDIR";
97 if [ -z $DM_TMPDIR ] && [ -e $TMPDIR ] ; then
98 DM_TMPDIR
=$TMPDIR/civicrm
101 if [ -z $DM_GENFILESDIR ] && [ -e $TMPDIR ] ; then
102 DM_GENFILESDIR
=$TMPDIR/genfiles
105 if [ -z $DM_PACKAGESDIR ] ; then
106 DM_PACKAGESDIR
="$DM_SOURCEDIR/packages"
109 if [ -z $DM_OUTPUTDIR ] ; then
110 DM_OUTPUTDIR
="$DM_TARGETDIR/civicrm_files"
113 # Test for distmaker.conf file availability, cannot proceed without it anyway
114 if [ -z $DM_GENFILESDIR ] ||
[ -z $DM_TMPDIR ] ||
[ -z $DM_TARGETDIR ]; then
115 echo; echo "Required variables not defined!"; echo;
117 echo "your variables"
118 echo "DM_SOURCEDIR : $DM_SOURCEDIR";
119 echo "DM_TARGETDIR : $DM_TARGETDIR (required)";
120 echo "DM_TMPDIR : $DM_TMPDIR";
121 echo "DM_GENFILESDIR : $DM_GENFILESDIR";
122 echo "DM_PACKAGESDIR : $DM_PACKAGESDIR";
123 echo "Current directory is : $THIS_DIR";
126 export DM_SOURCEDIR DM_GENFILESDIR DM_TMPDIR DM_TARGETDIR DM_PHP DM_RSYNC DM_ZIP DM_VERSION DM_REF_CORE DM_REF_DRUPAL DM_REF_DRUPAL6 DM_REF_JOOMLA DM_REF_WORDPRESS DM_REF_PACKAGES
127 if [ ! -d "$DM_SOURCEDIR" ]; then
128 echo; echo "ERROR! " DM_SOURCEDIR
"directory not found!"; echo "(if you get empty directory name, it might mean that one of necessary variables is not set)"; echo;
130 for k
in "$DM_GENFILESDIR" "$DM_TARGETDIR" "$DM_TMPDIR"; do
131 if [ -z "$k" ] ; then
132 echo; echo "ERROR! " $k "directory not found!"; echo "(if you get empty directory name, it might mean that one of necessary variables is not set)"; echo;
135 if [ ! -d "$k" ]; then
146 # Figure out what to do
150 echo; echo "Generating L10N module"; echo;
156 echo; echo "Generating Backdrop PHP5 module"; echo;
162 echo; echo "Generating Drupal7 PHP5 module"; echo;
166 # Drupal 7 - Output to directory
168 echo; echo "Generating Drupal7 Directory"; echo;
172 # DRUPAL7 PHP5 StarterKit package
174 echo; echo "Generating Drupal7 PHP5 starter kit minimal module"; echo;
180 echo; echo "Generating Drupal6 PHP5 module"; echo;
186 echo; echo "Generating Joomla PHP5 module"; echo;
192 echo; echo "Generating Wordpress PHP5 module"; echo;
198 echo; echo "Generating repo report module"; echo;
204 echo; echo "Generating all the tarballs we've got (not the directories). "; echo;
223 ## Make sure we have the right branch or tag
224 dm_git_checkout
"$DM_SOURCEDIR" "$DM_REF_CORE"
225 dm_git_checkout
"$DM_PACKAGESDIR" "$DM_REF_PACKAGES"
227 ## in theory, this shouldn't matter, but GenCode is CMS-dependent, and we've been doing our past builds based on D7
229 if [ -d "$DM_SOURCEDIR/backdrop" ]; then
230 dm_git_checkout
"$DM_SOURCEDIR/backdrop" "$DM_REF_BACKDROP"
233 if [ -d "$DM_SOURCEDIR/drupal" ]; then
234 dm_git_checkout
"$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL"
238 ## Get latest dependencies
239 dm_generate_vendor
"$DM_SOURCEDIR"
240 ## if we already have a bower_compoents dir empty it.
241 if [ -d "$DM_SOURCEDIR/bower_components" ]; then
242 rm -rf $DM_SOURCEDIR/bower_components
/*
244 dm_generate_bower
"$DM_SOURCEDIR"
246 # Before anything - regenerate DAOs
249 ${DM_PHP:-php} GenCode.php schema
/Schema.xml
$DM_VERSION $GENCODE_CMS
253 if [ "$L10NPACK" = 1 ]; then
254 echo; echo "Packaging for L10N"; echo;
255 bash
$P/dists
/l10n.sh
258 if [ "$BPACK" = 1 ]; then
259 echo; echo "Packaging for Backdrop, PHP5 version"; echo;
260 dm_git_checkout
"$DM_SOURCEDIR/backdrop" "$DM_REF_BACKDROP"
261 bash
$P/dists
/backdrop_php5.sh
264 if [ "$D56PACK" = 1 ]; then
265 echo; echo "Packaging for Drupal6, PHP5 version"; echo;
266 dm_git_checkout
"$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL6"
267 bash
$P/dists
/drupal6_php5.sh
270 if [ "$D5PACK" = 1 ]; then
271 echo; echo "Packaging for Drupal7, PHP5 version"; echo;
272 dm_git_checkout
"$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL"
273 bash
$P/dists
/drupal_php5.sh
276 if [ "$D7DIR" = 1 ]; then
277 echo; echo "Packaging for Drupal7, Directory not tarball, PHP5 version"; echo;
278 dm_git_checkout
"$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL"
279 bash
$P/dists
/drupal7_dir_php5.sh
282 if [ "$SKPACK" = 1 ]; then
283 echo; echo "Packaging for Drupal7, PHP5 StarterKit version"; echo;
284 dm_git_checkout
"$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL"
285 bash
$P/dists
/drupal_sk_php5.sh
288 if [ "$J5PACK" = 1 ]; then
289 echo; echo "Packaging for Joomla, PHP5 version"; echo;
290 dm_git_checkout
"$DM_SOURCEDIR/joomla" "$DM_REF_JOOMLA"
291 bash
$P/dists
/joomla_php5.sh
294 if [ "$WP5PACK" = 1 ]; then
295 echo; echo "Packaging for Wordpress, PHP5 version"; echo;
296 dm_git_checkout
"$DM_SOURCEDIR/WordPress" "$DM_REF_WORDPRESS"
297 bash
$P/dists
/wordpress_php5.sh
300 if [ "$REPOREPORT" = 1 ]; then
301 echo; echo "Preparing repository report"; echo;
303 L10NPACK
="$L10NPACK" \
311 bash
$P/dists
/repo-report.sh
314 unset DM_SOURCEDIR DM_GENFILESDIR DM_TARGETDIR DM_TMPDIR DM_PHP DM_RSYNC DM_VERSION DM_ZIP
315 echo;echo "DISTMAKER Done.";echo;