create-profile.sh: use a variable for the profile destination directory
[drupal-init-tools.git] / libexec / create-profile.sh
index 4ccdc9b..84ab022 100755 (executable)
@@ -47,7 +47,7 @@ do
 done
 
 
-[ "x$1" = "x" -o  "x$2" = "x" ] && { usage 1>&2; exit 1; }
+{ [ "x$1" = "x" ] || [ "x$2" = "x" ]; } && { usage 1>&2; exit 1; }
 
 PROFILE_TITLE="$1"
 PROFILE_MACHINE_NAME="$2"
@@ -64,7 +64,9 @@ DRUSH="${PROJECT_ROOT}/vendor/bin/drush"
 [ -x "$DRUSH" ] || { echo "Aborting, '$DRUSH' not available." 1>&2; exit 1; }
 [ -x "$DRUPAL_CONSOLE" ] || { echo "Aborting, '$DRUPAL_CONSOLE' not available." 1>&2; exit 1; }
 
-[ -d "${PROJECT_ROOT}/${PROFILE_MACHINE_NAME}" ] && { echo "Aborting, ${PROJECT_ROOT}/${PROFILE_MACHINE_NAME} already exists." 1>&2; exit 1; }
+PROFILE_DEST_DIR="${PROJECT_ROOT}/${PROFILE_MACHINE_NAME}"
+
+[ -d "${PROFILE_DEST_DIR}" ] && { echo "Aborting, '${PROFILE_DEST_DIR}' already exists." 1>&2; exit 1; }
 
 pushd "$WEB_ROOT"
 
@@ -76,13 +78,13 @@ pushd "$WEB_ROOT"
 #
 # or
 #
-#  $DRUPAL_CONSOLE yaml:get:value "$PWD/$PROFILE_MACHINE_NAME/config/install/core.extension.yml" dependencies
+#  $DRUPAL_CONSOLE yaml:get:value "${PROFILE_DEST_DIR}/config/install/core.extension.yml" dependencies
 #
 # However getting them before exporting the configuration and generating the
 # profile is cleaner.
 #
-ENABLED_MODULES="$($DRUSH pm-list --type=module --status=enabled --pipe | tr '\n' ',')"
-ENABLED_THEMES="$($DRUSH pm-list --type=theme --status=enabled --pipe | tr '\n' ',')"
+ENABLED_MODULES="$($DRUSH pm-list --type=module --field=name --status=enabled --pipe | tr '\n' ',' | sed 's/,$//')"
+ENABLED_THEMES="$($DRUSH pm-list --type=theme --field=name --status=enabled --pipe | tr '\n' ',' | sed 's/,$//')"
 
 $DRUPAL_CONSOLE generate:profile \
   --profile="$PROFILE_TITLE" \
@@ -95,21 +97,21 @@ $DRUPAL_CONSOLE generate:profile \
 
 # Basically do what's suggested in the "Configuration" section here:
 # https://www.drupal.org/docs/8/creating-distributions/how-to-write-a-drupal-8-installation-profile
-$DRUPAL_CONSOLE config:export --directory="${PROJECT_ROOT}/${PROFILE_MACHINE_NAME}/config/install" --remove-uuid --remove-config-hash
-rm "${PROJECT_ROOT}/${PROFILE_MACHINE_NAME}/config/install/core.extension.yml"
+$DRUPAL_CONSOLE config:export --directory="${PROFILE_DEST_DIR}/config/install" --remove-uuid --remove-config-hash
+rm "${PROFILE_DEST_DIR}/config/install/core.extension.yml"
 
 # The reference to the core version could be removed, even though it is not strictly necessary.
-find "${PROJECT_ROOT}/${PROFILE_MACHINE_NAME}/config/install" -type f -exec sed -i -e '/^_core: {  }/d' {} \;
+find "${PROFILE_DEST_DIR}/config/install" -type f -exec sed -i -e '/^_core: {  }/d' {} \;
 
 # Since the profile generated by `$DRUPAL_CONSOLE generate:profile` calls in
 # the standard profile, some duplicated config files could be removed in the
 # new profile, but that's not strictly necessary either.
-#fdupes -f -1 "${WEB_ROOT}/core/profiles/standard/config/install/" "${PROJECT_ROOT}/${PROFILE_MACHINE_NAME}/config/install/" | xargs rm
+#fdupes -f -1 "${WEB_ROOT}/core/profiles/standard/config/install/" "${PROFILE_DEST_DIR}/config/install/" | xargs rm
 
 # Export the default content if the default_content module is there
 if echo "$ENABLED_MODULES" | grep -q default_content;
 then
-  $DRUSH default-content-export-references --folder="${PROJECT_ROOT}/${PROFILE_MACHINE_NAME}/content" node
+  $DRUSH default-content-export-references --folder="${PROFILE_DEST_DIR}/content" node
 fi
 
 popd