This repository has been archived on 2024-08-26. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/bin/nysymfony

182 lines
6.4 KiB
Plaintext
Raw Normal View History

#!/bin/bash
################################################################################
2024-02-15 21:04:53 -08:00
# 4lt's install symfony bash script
################################################################################
2023-04-11 11:22:23 -07:00
################################################################################
# Check parameter (folder name)
################################################################################
2023-04-11 11:22:23 -07:00
if [ -z "$1" ]
then
echo "Please provide a folder name"
exit 1
fi
[ -d "$1" ] && echo "Folder $1 already exists" && exit 1
################################################################################
# Check composer installed
################################################################################
composer -v > /dev/null 2>&1
COMPOSER=$?
if [[ $COMPOSER -ne 0 ]]; then
echo 'Composer is not installed'
echo 'Checkout how to Install Composer here: https://www.nickyeoman.com/blog/php/install-composer-on-ubuntu/'
echo 'Once installed, try running this script again'
exit 1
else
echo "Composer is installed and ready to go."
fi
################################################################################
# Symfony bin installed
################################################################################
symfony help > /dev/null 2>&1
SYMFONY=$?
if [[ $SYMFONY -ne 0 ]]; then
echo 'Symfony is not installed'
echo 'Do this: https://symfony.com/download'
exit 1
else
symfony new $1
cd $1
echo "New symfony project called $1 created."
fi
################################################################################
# Create directories
################################################################################
echo "Creating directories: sass, scripts"
mkdir -p sass scripts
################################################################################
# Twig
################################################################################
echo "Creating scaffolding Twig templates in views directory"
composer require twig
composer require nickyeoman/nytwig
mv config/packages/twig.yaml config/packages/twig.yaml.bak
2024-02-15 21:04:53 -08:00
wget https://git.4lt.ca/nick/symfony/raw/branch/master/twig/twig.yaml
2022-11-15 18:33:37 -08:00
mv twig.yaml config/packages/twig.yaml
echo "Your twig.yaml config file has been replaced, remove the bak if you are happy."
################################################################################
# SASS
################################################################################
echo "Creating SASS directory for css"
2022-12-17 21:11:55 -08:00
composer require nickyeoman/sassLibrary
touch sass/project.sass
2022-12-17 21:11:55 -08:00
mkdir -p public/css
touch public/css/main.css
echo '.sass-cache' >> .gitignore
echo '@import ../vendor/nickyeoman/sasslibrary/master.sass' > sass/project.sass
echo "SASS installed you still need to run sass sass/$1.sass public/css/main.css"
################################################################################
2022-11-15 18:33:37 -08:00
# Symfony bundles
################################################################################
2022-12-17 21:11:55 -08:00
composer req nickyeoman/symfonycms
2024-02-15 21:04:53 -08:00
composer req symfony/process
2022-11-15 18:33:37 -08:00
composer req asset
2023-05-17 17:27:45 -07:00
composer req symfony/mailer # gives prompt
2022-11-16 20:02:30 -08:00
2022-11-17 14:07:14 -08:00
################################################################################
# Symfony development bundles
################################################################################
2022-11-15 18:33:37 -08:00
# Dev components
composer req --dev maker
composer req --dev symfony/profiler-pack
2022-11-15 18:33:37 -08:00
composer req debug logger
2022-11-17 14:07:14 -08:00
################################################################################
# Symfony security
################################################################################
composer require symfony/security-bundle
composer require form validator
composer require symfonycasts/verify-email-bundle
composer require symfonycasts/reset-password-bundle
2022-11-17 14:07:14 -08:00
2022-11-17 17:10:00 -08:00
################################################################################
# Database
################################################################################
2023-04-11 11:22:23 -07:00
composer req -n orm --with-all-dependencies
sleep 2
2022-11-17 17:10:00 -08:00
################################################################################
# Docker
################################################################################
2022-11-17 14:07:14 -08:00
# For the Apache container
2023-05-17 17:27:45 -07:00
composer req symfony/apache-pack #TODO: find a way to trigger this without interaction as it gives a prompt
2022-11-17 14:07:14 -08:00
# You need the following variables in your env for docker-compose
echo '' >> .env
echo '# For Docker compose' >> .env
echo 'DOCKERNAME=symfony' >> .env
echo 'DOCKERIMAGE=YOUR_NAME/YOUR_IMAGE_NAME' >> .env
echo 'DOCKERVER=latest' >> .env
echo 'DOCKERNET=DOCKER_NETWORK_NAME_FOR_PROXY' >> .env
2022-11-15 18:33:37 -08:00
echo "DOCKERPORT=8000" >> .env
2023-04-11 11:22:23 -07:00
ROOTPASS=`echo $RANDOM | md5sum | head -c 12`
echo "MYSQL_ROOT_PASSWORD=${ROOTPASS}" >> .env
2022-11-17 17:10:00 -08:00
echo 'DOCKERPHPMYADMIN=8001' >> .env
echo '' >> .env
2022-11-15 18:33:37 -08:00
echo '# Database info, should match your db url' >> .env
2023-04-11 11:22:23 -07:00
DBHOST='mariadb'
echo "DBHOST=${DBHOST}" >> .env
DB='symfony_project'
echo "DB=${DB}" >> .env
DBUSER=`echo $RANDOM | md5sum | head -c 4`
echo "DBUSER=theuser${DBUSER}" >> .env
DBPASS=`echo $RANDOM | md5sum | head -c 12`
echo "DBPASSWORD=${DBPASS}" >> .env
2022-11-17 17:10:00 -08:00
echo '' >> .env
2023-04-11 11:22:23 -07:00
echo "DATABASE_URL=\"mysql://theuser${DBUSER}:${DBPASS}@${DBHOST}:3306/${DB}?serverVersion=mariadb-10.4.11&charset=utf8mb4\"" >> .env
2022-11-15 18:33:37 -08:00
# TODO: move these here after you have symfony production ready
2022-11-17 17:10:00 -08:00
rm docker-compose.yml
rm docker-compose.override.yml
echo "Creating a docker-compose"
wget https://raw.githubusercontent.com/nickyeoman/phpframework/main/docker/docker-compose.yml
echo "Creating a Dockerfile"
wget https://raw.githubusercontent.com/nickyeoman/phpframework/main/docker/Dockerfile
2023-04-10 21:17:03 -07:00
################################################################################
# Routes
################################################################################
wget https://git.nickyeoman.com/nick/symfony/raw/branch/main/routes/routes.yaml
2023-04-11 11:22:23 -07:00
mv routes.yaml config/routes/symfonycms.yaml
2023-04-10 21:17:03 -07:00
2022-11-17 20:25:09 -08:00
################################################################################
# Clean up
################################################################################
composer update
2022-11-16 20:02:30 -08:00
################################################################################
# Git
################################################################################
git add .
git commit -m"New Project Script Run Completed"
################################################################################
# Instructions
################################################################################
2022-11-15 18:33:37 -08:00
php bin/console --version
2022-11-17 20:25:09 -08:00
composer recipes
2022-11-17 20:25:09 -08:00
echo "Symfony Installed"