Skip to content

Instantly share code, notes, and snippets.

@derigible
Created January 21, 2021 00:22
Show Gist options
  • Save derigible/aa061f219126c8e65ab90f79aa291ef0 to your computer and use it in GitHub Desktop.
Save derigible/aa061f219126c8e65ab90f79aa291ef0 to your computer and use it in GitHub Desktop.
UDOIT Install script
#!/usr/bin/bash
# install script for setting up all dependencies for running this application
yes_no () {
echo
echo "$1?"
select yn in "Yes" "No"; do
case $yn in
Yes ) return 0;;
No ) return 1;;
esac
done
echo
}
setup_mysql () {
echo 'Setting up mysql...'
apt install mysql-server
mysql -e "CREATE USER '$(whoami)'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';"
mysql -e "GRANT CREATE, ALTER, DROP, INSERT, INDEX, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO '$(whoami)'@'localhost' WITH GRANT OPTION;"
echo "DATABASE_URL=mysql://$(whoami):password@localhost:3306/udoit_ng" >> .env.local
}
setup_database () {
symfony console doctrine:database:create
symfony console doctrine:migrations:migrate
symfony console doctrine:migrations:migrate -n
}
if php -v | head -n 1 | grep '^PHP 7' -q; then
echo 'PHP 7+ installed, skipping'
else
echo 'PHP 7+ not found, installing...'
apt-get install php -y
echo 'Installing PHP dependencies...'
apt-get install php-pear php-fpm php-dev php-zip php-curl php-xmlrpc php-gd php-mysql php-mbstring php-xml libapache2-mod-php
echo 'Installing composer...'
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
echo 'Installing Symfony...'
wget https://get.symfony.com/cli/installer -O - | bash
mv /home/$(whoami)/.symfony/bin/symfony /usr/local/bin/symfony
fi
echo 'Setting up PHP server dependencies...'
composer install
if [[ -f ./.env.local ]]; then
echo 'Local env found, skipping...'
else
touch .env.local
fi
if mysql --version | head -n 1 | grep '^mysql' -q; then
echo 'MySql setup, skipping...'
else
setup_mysql
fi
if mysql -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'udoit_ng'" | grep udoit_ng -q; then
echo 'Database created, skipping...'
else
setup_database
fi
echo 'fin'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment