Automation (my) Solution
Wednesday, 04 December 2013
#!/bin/bash
function newSite {
local appdir="/Applications/XAMPP/htdocs/$1"
local sourcedir="/Applications/XAMPP/htdocs/source"
local author="Andrew JD Hudson"
local themedir="/Applications/XAMPP/htdocs/$1/content/themes/$1"
local starterTheme="es-theme"
local httpd\_vhosts="/Applications/XAMPP/etc/extra/httpd-vhosts.conf"
local git="ssh://git@bitbucket.org/bigandy"
if \[ ! -d $appdir \]
then
mkdir -p $appdir/wp
mkdir -p $appdir/content/themes/$1
# Copy Directories
cp -rf $sourcedir/wp/ $appdir/wp
cp -rf $sourcedir/$starterTheme/ $appdir/content/themes/$1
# Copy files
cp $sourcedir/{wp-config,index}.php $appdir
cp $sourcedir/source.sublime-project $appdir/$1.sublime-project
cp $sourcedir/source.sublime-workspace $appdir/$1.sublime-workspace
# change folder url in sublime-project
sed -i '' 's/source/'$1'/' $appdir/$1.sublime-project
# Remove the git repos from the original source folders
rm -rf $appdir/content/themes/$1/.git/
rm -rf $appdir/wp/.git/
# swap %%THEME\_NAME%% with $1 in sass file
# $appdir/content/themes/$1/sass/style.sass
sed -i '' 's/Starter Theme/'$1'/' $appdir/content/themes/$1/sass/style.sass
sed -i '' 's/odo/'$1'/' $appdir/wp-config.php
# Create the initial stylesheet
cd $appdir/content/themes/$1 && grunt sass
if \[ ! $2 \]
then
$2 = $1
fi
# Git init, add, commit, set origin, push to origin
cd $appdir/content/themes/$1 && git init && git add -A && git commit -m "initial commit of theme files" && git remote add origin $git/$2.git && git push -u origin --all
# Add folder and url to httpd-vhosts.conf
echo '
ServerName '$1'.local
DocumentRoot "'$appdir'" ' | sudo tee -a $httpd\_vhosts > /dev/null
# /etc/hosts set up
sudo sed -ie 's/^127.0.0.1 localhost.\*$/& '$1'.local/g' /etc/hosts
# restart apache so the above changes to httpd-vhosts.conf will take effect
sudo apachectl restart
# Create DB
# mysql -u root -e "CREATE DATABASE IF NOT EXISTS $1\_db;"; exit;
#
# subl $appdir/
# Open Project in Sublime Text 3
cd $appdir && subl --project ${1}.sublime-project
# TODO
# 1. Plugins - how to compile a list of plugins in a folder, or import from a list? see bulk plugin installer plugin (http://wordpress.org/plugins/bulk-plugin-installation/)
# 2. Import test DB with all installs from test.sql
else
echo "Please choose a name that is not $1"
fi
}
newSite $1 $2
← Back to all blog posts