X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=distmaker%2Fdistmaker.sh;h=be5a3c245dcdd5c8841cf46d9d3151d2edf2e75c;hb=6c7b7b66110c5a63e4dbcece28b0358d4a3fce31;hp=179c54aacd731e30ddccff9ce6c87b842fd383dc;hpb=82e7a8b8a4054c4814900ddf5e8fc56d6819c134;p=civicrm-core.git diff --git a/distmaker/distmaker.sh b/distmaker/distmaker.sh index 179c54aacd..be5a3c245d 100755 --- a/distmaker/distmaker.sh +++ b/distmaker/distmaker.sh @@ -6,13 +6,17 @@ set -e # "Protected by an electric fence and copyright control." # Thanks to Kleptones for moral support when writing this. -# Make sure that you have distmaker.conf file -# in the same directory containing following lines: +# You need to ensure the following variables are defined. They are traditionally defined +# in distmaker.conf but you can also defined them as an environment variable or by +# calling the script with env DM_REF_CORE=4.7 (for example). # # DM_SOURCEDIR=/home/user/svn/civicrm <- sources # DM_GENFILESDIR=/home/user/generated <- generated files # DM_TMPDIR=/tmp <- temporary files (will be deleted afterwards) # DM_TARGETDIR=/tmp/outdir <- target dir for tarballs +# DM_REF_CORE=master <- Git branch/tag name +# +# Optional variables # DM_PHP=/opt/php5/bin/php <- php5 binary # DM_RSYNC=/usr/bin/rsync <- rsync binary # DM_VERSION=trunk.r1234 <- what the version number should be @@ -31,8 +35,10 @@ ORIGPWD=`pwd` source "$P/dists/common.sh" # Set no actions by default +BPACK=0 D5PACK=0 D56PACK=0 +D7DIR=0 J5PACK=0 WP5PACK=0 SK5PACK=0 @@ -46,30 +52,76 @@ display_usage() echo " distmaker.sh OPTION" echo echo "Options available:" - echo " all - generate all available tarballs" - echo " l10n - generate internationalization data" - echo " d5 - generate Drupal7 PHP5 module" - echo " d5.6 - generate Drupal6 PHP5 module" - echo " j5 - generate Joomla PHP5 module" - echo " wp5 - generate Wordpress PHP5 module" - echo " sk - generate Drupal StarterKit module" + echo " all - generate all available tarballs" + echo " l10n - generate internationalization data" + echo " Backdrop - generate Backdrop PHP5 module" + echo " Drupal|d5 - generate Drupal7 PHP5 module" + echo " Drupal6|d5.6 - generate Drupal6 PHP5 module" + echo " d7_dir - generate Drupal7 PHP5 module, but output to a directory, no tarball" + echo " Joomla|j5 - generate Joomla PHP5 module" + echo " WordPress|wp5 - generate Wordpress PHP5 module" + echo " sk - generate Drupal StarterKit module" echo echo "You also need to have distmaker.conf file in place." echo "See distmaker.conf.dist for example contents." + echo "Alternatively you can set the required variables as " + echo "environment variables, eg. for your machine or by calling " + echo "this script using " + echo + echo "env DM_TARGETDIR=/path/to/output/dir/for/files/or/tarball distmaker.sh all" + echo + echo "optional environmentals:" + echo " DM_SOURCEDIR " + echo " DM_GENFILESDIR (default $TMPDIR/genfiles)" + echo " DM_TARGETDIR= (default $TMPDIR/civicrm)" + echo " DM_OUTPUTDIR= (default $DM_TARGETDIR/civicrm_files)" echo + } +THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"; # Check if config is ok. check_conf() { + if [ -f $P/distmaker.conf ] ; then + source "$P/distmaker.conf" + fi + + if [ -z $DM_SOURCEDIR ] ; then + DM_SOURCEDIR="$THIS_DIR/.."; + echo "Setting source dir to $DM_SOURCEDIR"; + fi + + if [ -z $DM_TMPDIR ] && [ -e $TMPDIR ] ; then + DM_TMPDIR=$TMPDIR/civicrm + fi + + if [ -z $DM_GENFILESDIR ] && [ -e $TMPDIR ] ; then + DM_GENFILESDIR=$TMPDIR/genfiles + fi + + if [ -z $DM_PACKAGESDIR ] ; then + DM_PACKAGESDIR="$DM_SOURCEDIR/packages" + fi + + if [ -z $DM_OUTPUTDIR ] ; then + DM_OUTPUTDIR="$DM_TARGETDIR/civicrm_files" + fi + # Test for distmaker.conf file availability, cannot proceed without it anyway - if [ ! -f $P/distmaker.conf ] ; then - echo; echo "ERROR! No distmaker.conf file available!"; echo; + if [ -z $DM_GENFILESDIR ] || [ -z $DM_TMPDIR ] || [ -z $DM_TARGETDIR ]; then + echo; echo "Required variables not defined!"; echo; display_usage + echo "your variables" + echo "DM_SOURCEDIR : $DM_SOURCEDIR"; + echo "DM_TARGETDIR : $DM_TARGETDIR (required)"; + echo "DM_TMPDIR : $DM_TMPDIR"; + echo "DM_GENFILESDIR : $DM_GENFILESDIR"; + echo "DM_PACKAGESDIR : $DM_PACKAGESDIR"; + echo "Current directory is : $THIS_DIR"; exit 1 else - source "$P/distmaker.conf" 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 if [ ! -d "$DM_SOURCEDIR" ]; then 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; @@ -86,15 +138,6 @@ check_conf() fi } -# Check if PHP4 converstion happened -check_php4() -{ - if [ ! $PHP4GENERATED = 1 ]; then - echo; echo "ERROR! Cannot package PHP4 version without running conversion!"; echo; - exit 1 - fi -} - # Let's go. check_conf @@ -107,12 +150,24 @@ case $1 in L10NPACK=1 ;; + # BACKDROP PHP5 + Backdrop) + echo; echo "Generating Backdrop PHP5 module"; echo; + BPACK=1 + ;; + # DRUPAL7 PHP5 - d5) + d5|Drupal) echo; echo "Generating Drupal7 PHP5 module"; echo; D5PACK=1 ;; + # Drupal 7 - Output to directory + d7_dir) + echo; echo "Generating Drupal7 Directory"; echo; + D7DIR=1 + ;; + # DRUPAL7 PHP5 StarterKit package sk) echo; echo "Generating Drupal7 PHP5 starter kit minimal module"; echo; @@ -120,26 +175,27 @@ case $1 in ;; # DRUPAL6 PHP5 - d5.6) + d5.6|Drupal6) echo; echo "Generating Drupal6 PHP5 module"; echo; D56PACK=1 ;; # JOOMLA PHP5 - j5) + j5|Joomla) echo; echo "Generating Joomla PHP5 module"; echo; J5PACK=1 ;; # WORDPRESS PHP5 - wp5) + wp5|WordPress) echo; echo "Generating Wordpress PHP5 module"; echo; WP5PACK=1 ;; # ALL all) - echo; echo "Generating all we've got."; echo; + echo; echo "Generating all the tarballs we've got (not the directories). "; echo; + BPACK=1 D5PACK=1 D56PACK=1 J5PACK=1 @@ -158,10 +214,18 @@ esac ## Make sure we have the right branch or tag dm_git_checkout "$DM_SOURCEDIR" "$DM_REF_CORE" -dm_git_checkout "$DM_SOURCEDIR/packages" "$DM_REF_PACKAGES" +dm_git_checkout "$DM_PACKAGESDIR" "$DM_REF_PACKAGES" ## in theory, this shouldn't matter, but GenCode is CMS-dependent, and we've been doing our past builds based on D7 -dm_git_checkout "$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL" +GENCODE_CMS= +if [ -d "$DM_SOURCEDIR/backdrop" ]; then + dm_git_checkout "$DM_SOURCEDIR/backdrop" "$DM_REF_BACKDROP" + GENCODE_CMS=Backdrop +fi +if [ -d "$DM_SOURCEDIR/drupal" ]; then + dm_git_checkout "$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL" + GENCODE_CMS=Drupal +fi ## Get latest dependencies dm_generate_vendor "$DM_SOURCEDIR" @@ -170,7 +234,7 @@ dm_generate_bower "$DM_SOURCEDIR" # Before anything - regenerate DAOs cd $DM_SOURCEDIR/xml -${DM_PHP:-php} GenCode.php schema/Schema.xml $DM_VERSION +${DM_PHP:-php} GenCode.php schema/Schema.xml $DM_VERSION $GENCODE_CMS cd $ORIGPWD @@ -179,6 +243,12 @@ if [ "$L10NPACK" = 1 ]; then bash $P/dists/l10n.sh fi +if [ "$BPACK" = 1 ]; then + echo; echo "Packaging for Backdrop, PHP5 version"; echo; + dm_git_checkout "$DM_SOURCEDIR/backdrop" "$DM_REF_BACKDROP" + bash $P/dists/backdrop_php5.sh +fi + if [ "$D56PACK" = 1 ]; then echo; echo "Packaging for Drupal6, PHP5 version"; echo; dm_git_checkout "$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL6" @@ -191,6 +261,12 @@ if [ "$D5PACK" = 1 ]; then bash $P/dists/drupal_php5.sh fi +if [ "$D7DIR" = 1 ]; then + echo; echo "Packaging for Drupal7, Directory not tarball, PHP5 version"; echo; + dm_git_checkout "$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL" + bash $P/dists/drupal7_dir_php5.sh +fi + if [ "$SKPACK" = 1 ]; then echo; echo "Packaging for Drupal7, PHP5 StarterKit version"; echo; dm_git_checkout "$DM_SOURCEDIR/drupal" "$DM_REF_DRUPAL"