154 lines
4.8 KiB
Bash
154 lines
4.8 KiB
Bash
#!/bin/bash
|
|
|
|
echo -e "\e[1;37;46m Checking node version \e[0m"
|
|
if which node > /dev/null
|
|
then
|
|
node_version="$(node --version | cut -c 2,3)";
|
|
if [[ "$node_version" =~ ^(10|11|12|14|15)$ ]]
|
|
then
|
|
echo -e "\e[1;37;42m Node: OK (v$node_version) \e[0m"
|
|
else
|
|
echo -e "\e[1;37;41m Your Node.js version isn't supported by this project, you need one of this versions: v10, v11, v12, v13, v14, v15 \e[0m"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo -e "\e[1;37;41m Node.js is not installed or not in your PATH \e[0m"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "\e[1;37;46m Checking yarn is installed \e[0m"
|
|
if ! command -v yarn &> /dev/null
|
|
then
|
|
echo -e "\e[1;37;41m Yarn is not installed or not in your PATH \e[0m"
|
|
exit
|
|
else
|
|
echo -e "\e[1;37;42m Yarn: OK \e[0m"
|
|
fi
|
|
|
|
echo -e "\e[1;37;46m Checking composer is installed \e[0m"
|
|
|
|
if which composer > /dev/null
|
|
then
|
|
echo -e "\e[1;37;42m Composer: OK \e[0m"
|
|
else
|
|
echo -e "\e[1;37;41m Composer is not installed or not in your PATH \e[0m"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
DB_FILE=./local/config/database.yml
|
|
|
|
if test -f "$DB_FILE"; then
|
|
read -p "$(echo -e "\e[1;37;45m Would you like to erase the current database.yml file (y/n)? \e[0m")" erase
|
|
if [ "$erase" != "${erase#[Yy]}" ] ;then
|
|
echo -e "\e[1;37;46m Removing current database.yml \e[0m"
|
|
rm $DB_FILE
|
|
rm -rf ./cache
|
|
echo -e "\e[1;37;42m database.yml removed \e[0m"
|
|
fi
|
|
fi
|
|
|
|
read -p "$(echo -e "\e[1;37;45m Enter a template folder name, (default: modern) it's recommended to change it : \e[0m")" TEMPLATE_NAME
|
|
TEMPLATE_NAME=${TEMPLATE_NAME:-modern}
|
|
|
|
if [ "$TEMPLATE_NAME" != "modern" ] ;then
|
|
echo -e "\e[1;37;46m Copying template files to templates/frontOffice/$TEMPLATE_NAME \e[0m"
|
|
cp -r "templates/frontOffice/modern" "templates/frontOffice/$TEMPLATE_NAME";
|
|
echo -e "\e[1;37;42m File copied \e[0m"
|
|
fi
|
|
|
|
echo -e "\e[1;37;46m Creating session and media folder if not exist \e[0m"
|
|
[ -d local/session ] || mkdir -p local/session
|
|
[ -d local/media ] || mkdir -p local/media
|
|
|
|
chmod -R +w local/session && chmod -R +w local/media
|
|
echo -e "\e[1;37;42m Folder created \e[0m"
|
|
|
|
echo -e "\e[1;37;46m Installing dependencies by composer \e[0m"
|
|
composer install
|
|
echo -e "\e[1;37;32 Dependencies installed \e[0m"
|
|
|
|
echo -e "\e[1;37;46m Installing Thelia \e[0m"
|
|
php Thelia thelia:install
|
|
echo -e "\e[1;37;42m Thelia installed \e[0m"
|
|
|
|
echo -e "\e[1;37;46m Activating needed modules \e[0m"
|
|
php Thelia module:refresh
|
|
php Thelia module:activate OpenApi
|
|
php Thelia module:activate ChoiceFilter
|
|
php Thelia module:activate StoreSeo
|
|
php Thelia module:activate SmartyRedirection
|
|
php Thelia module:deactivate HookAdminHome
|
|
php Thelia module:deactivate HookAnalytics
|
|
php Thelia module:deactivate HookCart
|
|
php Thelia module:deactivate HookCustomer
|
|
php Thelia module:deactivate HookSearch
|
|
php Thelia module:deactivate HookLang
|
|
php Thelia module:deactivate HookCurrency
|
|
php Thelia module:deactivate HookNavigation
|
|
php Thelia module:deactivate HookProductsNew
|
|
php Thelia module:deactivate HookSocial
|
|
php Thelia module:deactivate HookNewsletter
|
|
php Thelia module:deactivate HookContact
|
|
php Thelia module:deactivate HookLinks
|
|
php Thelia module:deactivate HookProductsOffer
|
|
php Thelia module:refresh
|
|
echo -e "\e[1;37;42m Module activated \e[0m"
|
|
|
|
echo -e "\e[1;37;46m Changing active template \e[0m"
|
|
|
|
php Thelia template:front "$TEMPLATE_NAME"
|
|
|
|
echo -e "\e[1;37;42m Active template changed \e[0m"
|
|
|
|
echo -e "\e[1;37;46m Creating an administrator \e[0m"
|
|
|
|
php Thelia admin:create
|
|
|
|
echo -e "\e[1;37;42m Administrator created \e[0m"
|
|
|
|
TEMPLATE_NAME=modern
|
|
|
|
if test -f "$DB_FILE"; then
|
|
read -p "$(echo -e "\e[1;37;45m Would you like to install a sample database (y/n)? \e[0m")" sample
|
|
if [ "$sample" != "${sample#[Yy]}" ] ;then
|
|
if test -f local/setup/import.php; then
|
|
php local/setup/import.php
|
|
elif test -f setup/import.php; then
|
|
php setup/import.php
|
|
else
|
|
echo -e "\e[1;37;41m Import script not found \e[0m"
|
|
exit
|
|
fi
|
|
echo -e "\e[1;37;42m Sample data imported \e[0m"
|
|
fi
|
|
fi
|
|
|
|
rm -rf ./cache
|
|
|
|
read -p "$(echo -e "\e[1;37;45m What's your BROWSERSYNC_PROXY(eg: http://myvhost.test) : \e[0m")" vhost
|
|
|
|
if [ -z $vhost ]
|
|
then
|
|
echo "To set your BROWSERSYNC_PROXY, you have to create .env file at the root of your template : templates/frontOffice/$TEMPLATE_NAME/"
|
|
else
|
|
cd "templates/frontOffice/$TEMPLATE_NAME" && touch .env && echo BROWSERSYNC_PROXY="$vhost" > .env && cd -
|
|
fi
|
|
|
|
cd "templates/frontOffice/$TEMPLATE_NAME" || exit
|
|
|
|
echo -e "\e[1;37;46m Installing dependencies by yarn \e[0m"
|
|
yarn install || exit
|
|
echo -e "\e[1;37;42m Dependencies installed \e[0m"
|
|
echo -e "\e[1;37;46m Building template \e[0m"
|
|
yarn build || exit
|
|
echo -e "\e[1;37;42m Template builded \e[0m"
|
|
|
|
cd ../../..
|
|
|
|
echo -e "\e[1;37;42m Everything is good, you can now use your Thelia ! \e[0m"
|
|
|
|
# INIT CONSTANTS
|
|
# ------------------------------
|
|
|
|
exit 1 |