Updated script with better messaging and to check composer version since the script won't run on composer 1.

This commit is contained in:
alex 2021-05-27 13:31:20 -06:00
parent 81b23d7b69
commit 07a04b19af

View File

@ -1,7 +1,39 @@
echo Would you like to install a theme using the FE Setup script? \(y/n\) Be sure not to overwrite an existing theme. #!/bin/bash
read install_theme
if [ $install_theme == 'y' -o $install_theme == 'Y' ] # Setup colours for us in our output messages.
BLACK_TXT=`tput setaf 0`
RED_TXT=`tput setaf 1`
GREEN_TXT=`tput setaf 2`
YELLOW_TXT=`tput setaf 3`
BLACK_BG=`tput setab 0`
RED_BG=`tput setab 1`
GREEN_BG=`tput setab 2`
YELLOW_BG=`tput setab 3`
RESET=`tput sgr0`
# Get composer version because in order to run properly this script requires
# Composer 2. See: https://github.com/composer/composer/issues/3299.
# Cuts will return overall composer version (ie. 1 or 2).
COMPOSER_VERSION_COMMAND="composer --version --no-ansi | cut -d \" \" -f 3 | cut -d \".\" -f 1"
COMPOSER_VERSION=$(eval "$COMPOSER_VERSION_COMMAND")
if [ "$COMPOSER_VERSION" -lt 2 ]
then then
echo "${YELLOW_BG}${BLACK_TXT} Theme setup script requires Composer 2. Please note the rest of the composer install command has still be ran as expected - the theme setup is an optional step. ${RESET}";
echo "${YELLOW_BG}${BLACK_TXT} If you are setting up a site please also note that the site installation profile will still be able to be installed. ${RESET}";
exit 0;
fi
# Check if the user actually wants to run the install script or not.
echo "Would you like to install a theme using the starter theme front-end setup script? (${GREEN_TXT}Y${RESET}/${RED_TXT}N${RESET})";
read install_theme
if [ "$install_theme" != 'y' -a "$install_theme" != 'Y' ]
then
echo "${YELLOW_BG}${BLACK_TXT} Theme will not be setup. Please note the rest of the composer install command has still be ran as expected - the theme setup is an optional step. ${RESET}";
echo "${YELLOW_BG}${BLACK_TXT} If you are setting up a site please also note that the site installation profile will still be able to be installed. ${RESET}";
exit 0;
fi
# fe_setup.sh script runs from here on.
echo What is the theme name? \(This value should be all lowercase, and will replace \'yellowpencil\' in the starter theme.\) echo What is the theme name? \(This value should be all lowercase, and will replace \'yellowpencil\' in the starter theme.\)
read theme_name read theme_name
echo What is the URL of the project repository? \(This should follow the format \'https://git.yellowpencil.com/yellowpencil/theme-name\'.\) echo What is the URL of the project repository? \(This should follow the format \'https://git.yellowpencil.com/yellowpencil/theme-name\'.\)
@ -11,12 +43,12 @@ then
SEARCH_R=[Yy]ellow[Pp]encil SEARCH_R=[Yy]ellow[Pp]encil
REPLACE=$theme_name REPLACE=$theme_name
REPO=$repo_url REPO=$repo_url
# Check if the theme already exists and is so exit so we don't accidentally
# overwrite anything.
if [ -d "$SEARCH_PATH/$REPLACE" -a ! -h "$SEARCH_PATH/$REPLACE" ] if [ -d "$SEARCH_PATH/$REPLACE" -a ! -h "$SEARCH_PATH/$REPLACE" ]
then then
BLACK_BG=`tput setaf 0` echo "${YELLOW_BG}${BLACK_TXT} Theme already exists. Please note the rest of the composer install command has still be ran as expected - the theme setup is an optional step. ${RESET}";
YELLOW_TXT=`tput setab 3` echo "${YELLOW_BG}${BLACK_TXT} If you are setting up a site please also note that the site installation profile will still be able to be installed. ${RESET}";
RESET=`tput sgr0`
echo "${YELLOW_TXT}${BLACK_BG} Theme already exists. ${RESET}";
exit 0; exit 0;
fi fi
git clone git@git.yellowpencil.com:yellowpencil/yp_drupal8_theme.git $SEARCH_PATH/$REPLACE git clone git@git.yellowpencil.com:yellowpencil/yp_drupal8_theme.git $SEARCH_PATH/$REPLACE
@ -35,5 +67,4 @@ then
PACKAGE_FILE=$(find ${SEARCH_PATH}/${REPLACE} -type f -name "package.json" -print0) PACKAGE_FILE=$(find ${SEARCH_PATH}/${REPLACE} -type f -name "package.json" -print0)
sed -i '' -e "s/${SEARCH_R}/${REPLACE}/g" $PACKAGE_FILE sed -i '' -e "s/${SEARCH_R}/${REPLACE}/g" $PACKAGE_FILE
sed -i '' -e "s,https:\/\/[^\"#]*,${REPO},g" $PACKAGE_FILE sed -i '' -e "s,https:\/\/[^\"#]*,${REPO},g" $PACKAGE_FILE
echo $REPO_REPLACE echo "${GREEN_TXT}The '${theme_name}' theme has been successfully created.${RESET}";
fi