-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlazy.sh
More file actions
266 lines (212 loc) · 7.01 KB
/
lazy.sh
File metadata and controls
266 lines (212 loc) · 7.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
#!/bin/bash
#
# Lazy (-_-)
# Wordpress automatic install + vhost + host + dummy-wordpress
#
# By @maximebj (maxime@smoothie-creative.com) and some stuff by INTO THE WHY
#
# *** Recommended for Lazy people like me ***
#
# How to launch Lazy ?
# bash lazy.sh sitename "My WP Blog"
# $1 = folder name & database name
# $2 = Site title
# ===============================
# VARS
# admin email
email="webmaster@$1.com"
# local url login
# --> Change to fit your server URL model (eg: http://localhost:8888/my-project)
url="http://"$1".com"
# admin login
admin=$1
# user bash
user=matteo
# path to install your WPs
pathtoinstall=~/Sites
# end VARS ---
# ===============
# = Fancy Stuff =
# ===============
# not mandatory at all
# Stop on error
set -e
# colorize and formatting command line
# You need iTerm and activate 256 color mode in order to work : http://kevin.colyar.net/wp-content/uploads/2011/01/Preferences.jpg
green='\x1B[0;32m'
cyan='\x1B[1;36m'
blue='\x1B[0;34m'
grey='\x1B[1;30m'
red='\x1B[0;31m'
bold='\033[1m'
normal='\033[0m'
# Jump a line
function line {
echo " "
}
# Wippy has something to say
function bot {
line
echo -e "${blue}${bold}=====(-_-)===== $1${normal}"
}
function ok {
line
echo -e "${green}${bold}++++++++++++++ $1 OK +++++++++++++++${normal}"
}
function message {
line
echo -e "==================${green}${bold}$1${normal}"
}
# ==============================
# = The show is about to begin =
# ==============================
# Welcome !
bot "Bonjour ! Je suis Lazy"
echo -e "${cyan}${bold} Je vais installer wordpress pour $1 en local chef !"
# ===============================
# CREATE VHOST & UPDATE HOST FILE
# ===============================
bot "Création du VHOST $1"
echo "<VirtualHost *:80>
DocumentRoot /Users/matteo/Sites/$1/
ServerName $1.com
ServerAlias www.$1.com
ErrorLog "/private/var/log/apache2/$1.com-error_log"
CustomLog "/private/var/log/apache2/$1.com-access_log" common
<Directory /Users/matteo/Sites/$1/>
Options +Indexes +FollowSymLinks +MultiViews +Includes
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>" > /etc/apache2/other/$1.conf
ok "VHOST"
bot "Mise à jour du HOST $1"
echo 127.0.0.1 $1.com >> /etc/hosts
ok "HOST"
bot "Apache Restart"
apachectl restart
# CHECK : Directory doesn't exist
# go to wordpress installs folder
# --> Change : to wherever you want
#cd pathtoinstall
# check if provided folder name already exists
if [ -d $1 ]; then
bot "${red}Le dossier ${cyan}$1${red}existe déjà${normal}."
echo " Par sécurité, je ne vais pas plus loin pour ne rien écraser."
line
# quit script
exit 1
fi
# create directory
bot "Je crée le dossier : ${cyan}$1"
sudo -u ${user} -- mkdir $1
cd $1
# Download WP
bot "Je télécharge WordPress..."
sudo -u ${user} -- wp core download --locale=fr_FR --force
# check version
bot "J'ai récupéré cette version :"
sudo -u ${user} -- wp core version
# create base configuration
bot "Je lance la configuration :"
sudo -u ${user} -- wp core config --dbname='wp_'$1 --dbuser=root --dbpass=admin --skip-check --extra-php <<PHP
define( 'WP_DEBUG', true );
PHP
# Create database
bot "Je crée la base de données :"
sudo -u ${user} -- wp db create
# Generate random password
passgen=`head -c 10 /dev/random | base64`
password='admin'
# launch install
bot "et j'installe !"
sudo -u ${user} -- wp core install --url=$url --title="$2" --admin_user=$admin --admin_email=$email --admin_password=$password
# Plugins install
sudo -u ${user} -- wp plugin install timber-library --activate
sudo -u ${user} -- wp plugin install ../plugins/vc.zip --activate
sudo -u ${user} -- wp plugin install jetpack --activate
sudo -u ${user} -- wp plugin install advanced-custom-fields --activate
sudo -u ${user} -- wp plugin install contact-form-7 --activate
sudo -u ${user} -- wp plugin install tinymce-advanced --activate
sudo -u ${user} -- wp plugin install wp-clean-up --activate
sudo -u ${user} -- wp plugin install wordpress-seo --activate
# Download from private git repository
bot "J'installe le theme dummy"
cd wp-content/themes/
git clone git@github.com:dummy-team/wp-dummy-twig.git
cd wp-content/themes/wp-dummy-twig/web/
yo dummies
yo dummies:toolkit
cd grunt
npm install
grunt build
# Create standard pages
bot "Je crée les pages Accueil, page et contact)"
sudo -u ${user} -- wp post create --post_type=page --post_title='Accueil' --post_status=publish
sudo -u ${user} -- wp post create --post_type=page --post_title='Page' --post_status=publish
sudo -u ${user} -- wp post create --post_type=page --post_title='Contact' --post_status=publish
# Change Homepage
bot "Je change la page d'accueil et la page des articles"
sudo -u ${user} -- wp option update show_on_front page
sudo -u ${user} -- wp option update page_on_front 3
# Menu stuff
bot "Je crée le menu principal, assigne les pages, et je lie l'emplacement du thème : "
sudo -u ${user} -- wp menu create "Menu Principal"
sudo -u ${user} -- wp menu item add-post menu-principal 3
sudo -u ${user} -- wp menu item add-post menu-principal 4
sudo -u ${user} -- wp menu item add-post menu-principal 5
#wp menu location assign menu-principal main-menu
# Misc cleanup
bot "Je supprime Hello Dolly, les thèmes de base et les articles exemples"
sudo -u ${user} -- wp post delete 1 --force # Article exemple - no trash. Comment is also deleted
sudo -u ${user} -- wp post delete 2 --force # page exemple
sudo -u ${user} -- wp plugin delete hello
sudo -u ${user} -- wp theme delete twentyfourteen
sudo -u ${user} -- wp theme delete twentyfifteen
sudo -u ${user} -- wp theme delete twentysixteen
sudo -u ${user} -- wp option update blogdescription ''
# Permalinks to /%postname%/
bot "J'active la structure des permaliens"
sudo -u ${user} -- wp rewrite structure "/%postname%/" --hard
sudo -u ${user} -- wp rewrite flush --hard
# cat and tag base update
sudo -u ${user} -- wp option update category_base theme
sudo -u ${user} -- wp option update tag_base sujet
# Git project
# REQUIRED : download Git at http://git-scm.com/downloads
bot "Je Git le projet :"
cd pathtoinstall
cd $1
git init # git project
git add -A # Add all untracked files
#touch README
git commit -m "Initial commit" # Commit changes
#git remote add origin https://github.com/itwhy/$1.git
#git push
# Open the stuff
bot "Je lance le navigateur, Bracket et le finder."
# Open in browser
open $url
open "${url}/wp-admin"
# Open in Sublime text
# REQUIRED : activate subl alias at https://www.sublimetext.com/docs/3/osx_command_line.html
cd wp-content/themes
brackets .
#subl .
# Open in finder
open .
# Copy password in clipboard
echo $password | pbcopy
# That's all ! Install summary
bot "${green}L'installation est terminée !${normal}"
line
echo "URL du site: $url"
echo "Login admin : admin$1"
echo -e "Password : ${cyan}${bold} $password ${normal}${normal}"
line
echo -e "${grey}(N'oubliez pas le mot de passe ! Je l'ai copié dans le presse-papier)${normal}"
line
bot "à Bientôt !"
line
line