148 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
################################################################################
 | 
						|
# 4lt's install symfony bash script
 | 
						|
################################################################################
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Check parameter (folder name)
 | 
						|
################################################################################
 | 
						|
 | 
						|
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
 | 
						|
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
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Symfony bin installed
 | 
						|
################################################################################
 | 
						|
 | 
						|
git clone git@git.4lt.ca:nick/symfony.git nick
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Create directories
 | 
						|
################################################################################
 | 
						|
 | 
						|
echo "Creating directories: sass"
 | 
						|
mkdir -p sass
 | 
						|
 | 
						|
################################################################################
 | 
						|
# SASS
 | 
						|
################################################################################
 | 
						|
 | 
						|
echo "Creating SASS directory for css"
 | 
						|
composer require nickyeoman/sassLibrary
 | 
						|
touch sass/project.sass
 | 
						|
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"
 | 
						|
 | 
						|
################################################################################
 | 
						|
# 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
 | 
						|
cp vendor/nickyeoman/nytwig/symfony/twig.yaml config/packages/twig.yaml
 | 
						|
 | 
						|
echo "Your twig.yaml config file has been replaced, remove the bak if you are happy."
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Symfony bundles
 | 
						|
################################################################################
 | 
						|
 | 
						|
# https://symfony.com/doc/current/components/process.html (for running commands)
 | 
						|
echo "Installing process"
 | 
						|
composer req symfony/process
 | 
						|
 | 
						|
# https://symfony.com/doc/current/components/asset.html
 | 
						|
echo "Installing asset"
 | 
						|
composer req asset 
 | 
						|
 | 
						|
# https://symfony.com/doc/current/mailer.html
 | 
						|
echo "Installing Mailer"
 | 
						|
composer req -n symfony/mailer # gives prompt
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Symfony development bundles
 | 
						|
################################################################################
 | 
						|
 | 
						|
# https://symfony.com/doc/current/profiler.html
 | 
						|
echo "Installing profiler for dev"
 | 
						|
composer req --dev symfony/profiler-pack
 | 
						|
 | 
						|
composer require cs-fixer-shim --dev
 | 
						|
 | 
						|
# https://symfony.com/bundles/SymfonyMakerBundle/current/index.html
 | 
						|
echo "Installing maker bundle for dev"
 | 
						|
composer req --dev maker
 | 
						|
sleep 2
 | 
						|
rm -rf vendor/symfony/maker-bundle/src/Resources/skeleton/controller/*
 | 
						|
cp -R nick/maker/*.php vendor/symfony/maker-bundle/src/Resources/skeleton/controller/.
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Symfony form
 | 
						|
################################################################################
 | 
						|
 | 
						|
composer require form validator
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Database
 | 
						|
################################################################################
 | 
						|
 | 
						|
composer req -n orm --with-all-dependencies
 | 
						|
sleep 2
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Git
 | 
						|
################################################################################
 | 
						|
 | 
						|
rm -rf nick/
 | 
						|
git add .
 | 
						|
git commit -m"New Project Script Run Completed"
 | 
						|
 | 
						|
################################################################################
 | 
						|
# Instructions
 | 
						|
################################################################################
 | 
						|
 | 
						|
symfony console --version
 | 
						|
 | 
						|
composer recipes
 | 
						|
 | 
						|
echo "Symfony Installed" |