Skip to content

Commit

Permalink
Merge pull request #18229 from totten/master-patchset
Browse files Browse the repository at this point in the history
distmaker - Autogenerate civicrm-*-patchset.tar.gz
  • Loading branch information
eileenmcnaughton authored Aug 23, 2020
2 parents 8670bc2 + cd0432e commit f8682b5
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 0 deletions.
14 changes: 14 additions & 0 deletions distmaker/distmaker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ D56PACK=0
D7DIR=0
J5PACK=0
WP5PACK=0
PATCHPACK=0
SK5PACK=0
L10NPACK=0
REPOREPORT=0
Expand All @@ -61,6 +62,7 @@ display_usage()
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 " patchset - generate a tarball with patch files"
echo " sk - generate Drupal StarterKit module"
echo
echo "You also need to have distmaker.conf file in place."
Expand Down Expand Up @@ -193,6 +195,12 @@ case $1 in
WP5PACK=1
;;

## PATCHSET export
patchset)
echo; echo "Generating patchset"; echo;
PATCHPACK=1
;;

# REPO REPORT PHP5
report)
echo; echo "Generating repo report module"; echo;
Expand All @@ -207,6 +215,7 @@ case $1 in
D56PACK=1
J5PACK=1
WP5PACK=1
PATCHPACK=1
SKPACK=1
L10NPACK=1
REPOREPORT=1
Expand Down Expand Up @@ -297,6 +306,11 @@ if [ "$WP5PACK" = 1 ]; then
bash $P/dists/wordpress_php5.sh
fi

if [ "$PATCHPACK" = 1 ]; then
echo; echo "Packaging for patchset tarball"; echo;
bash $P/dists/patchset.sh
fi

if [ "$REPOREPORT" = 1 ]; then
echo; echo "Preparing repository report"; echo;
env \
Expand Down
15 changes: 15 additions & 0 deletions distmaker/dists/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,21 @@ function dm_install_cvext() {
cv dl -b "@https://civicrm.org/extdir/ver=$DM_VERSION|cms=Drupal/$1.xml" --to="$2"
}

## Export a list of patch files from a git repo
## usage: dm_export_patches <src-repo> <out-dir> <range>
## ex: dm_export_patches "$HOME/src/somerepo" "/tmp/export" 5.1.2..5.1.6
function dm_export_patches() {
if [ ! -d "$1" ]; then
echo "ignore: $1"
return
fi
echo "Export \"$1\" ($3) to \"$2\""
pushd "$1" >> /dev/null
git format-patch "$3" -o "$2"
popd >> /dev/null
}


## Edit a file by applying a regular expression.
## Note: We'd rather just call "sed", but it differs on GNU+BSD.
## usage: dm_preg_edit <search-pattern> <replacement-pattern> <file>
Expand Down
42 changes: 42 additions & 0 deletions distmaker/dists/patchset.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash
set -ex

P=`dirname $0`
CFFILE=$P/../distmaker.conf
if [ ! -f $CFFILE ] ; then
echo "NO DISTMAKER.CONF FILE!"
exit 1
else
. $CFFILE
fi
. "$P/common.sh"

DM_MAJMIN=$(echo "$DM_VERSION" | cut -f1,2 -d\. )
REFTAG=$(grep -h "^${DM_MAJMIN}:" "$P/../patchset-baselines.txt" | cut -f2 -d: )
if [ -z "$REFTAG" ]; then
echo "The branch ${DM_MAJMIN} does not have a reference version. No patchset to generate."
exit 0
fi

SRC="$DM_SOURCEDIR"
TRG="$DM_TMPDIR/civicrm-$DM_VERSION"

# export patch files for each repo
dm_reset_dirs "$TRG"
mkdir -p "$TRG"/civicrm-{core,drupal-6,drupal-7,drupal-8,backdrop,packages,joomla,wordpress}
dm_export_patches "$SRC" "$TRG/civicrm-core" $REFTAG..$DM_REF_CORE
# dm_export_patches "$SRC/drupal" "$TRG/civicrm-drupal-6" 6.x-$REFTAG..$DM_REF_DRUPAL6
dm_export_patches "$SRC/drupal" "$TRG/civicrm-drupal-7" 7.x-$REFTAG..$DM_REF_DRUPAL
dm_export_patches "$SRC/drupal-8" "$TRG/civicrm-drupal-8" $REFTAG..$DM_REF_DRUPAL8
dm_export_patches "$SRC/backdrop" "$TRG/civicrm-backdrop" 1.x-$REFTAG..$DM_REF_BACKDROP
dm_export_patches "$SRC/packages" "$TRG/civicrm-packages" $REFTAG..$DM_REF_PACKAGES
dm_export_patches "$SRC/joomla" "$TRG/civicrm-joomla" $REFTAG..$DM_REF_JOOMLA
dm_export_patches "$SRC/wordpress" "$TRG/civicrm-wordpress" $REFTAG..$DM_REF_WORDPRESS


# gen tarball
cd "$DM_TMPDIR"
tar czf $DM_TARGETDIR/civicrm-$DM_VERSION-patchset.tar.gz civicrm-$DM_VERSION

# clean up
rm -rf $TRG
5 changes: 5 additions & 0 deletions distmaker/patchset-baselines.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## When exporting patches for a given major-series (e.g. 5.27),
## we use a fixed reference-point (e.g. `git log $REFPOINT..`).
##
## Major Series : Reference-Point (Tag/Commit)
5.27:5.27.4

0 comments on commit f8682b5

Please sign in to comment.