swiftly 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.DS_Store +0 -0
- data/.gitignore +2 -0
- data/Dropbox/Development/www/Swiftlyfile +8 -0
- data/Gemfile +3 -0
- data/bin/swiftly +15 -0
- data/lib/swiftly/Rakefile +38 -0
- data/lib/swiftly/app_module.rb +320 -0
- data/lib/swiftly/clean.rb +33 -0
- data/lib/swiftly/cli.rb +36 -0
- data/lib/swiftly/config.rb +131 -0
- data/lib/swiftly/config_global_generator.rb +35 -0
- data/lib/swiftly/config_plugins_generator.rb +33 -0
- data/lib/swiftly/config_project_generator.rb +32 -0
- data/lib/swiftly/config_swiftlyfile_generator.rb +34 -0
- data/lib/swiftly/config_templates_generator.rb +33 -0
- data/lib/swiftly/configure.rb +27 -0
- data/lib/swiftly/configure_all.rb +181 -0
- data/lib/swiftly/configure_local.rb +34 -0
- data/lib/swiftly/configure_production.rb +42 -0
- data/lib/swiftly/configure_staging.rb +41 -0
- data/lib/swiftly/create.rb +94 -0
- data/lib/swiftly/create_git.rb +40 -0
- data/lib/swiftly/create_project.rb +67 -0
- data/lib/swiftly/create_wordpress.rb +185 -0
- data/lib/swiftly/database.rb +213 -0
- data/lib/swiftly/destroy.rb +53 -0
- data/lib/swiftly/enable.rb +13 -0
- data/lib/swiftly/enable_wordpress.rb +22 -0
- data/lib/swiftly/generate.rb +23 -0
- data/lib/swiftly/generate_post_type.rb +50 -0
- data/lib/swiftly/init.rb +130 -0
- data/lib/swiftly/packages.rb +137 -0
- data/lib/swiftly/project.rb +127 -0
- data/lib/swiftly/pull.rb +25 -0
- data/lib/swiftly/push.rb +60 -0
- data/lib/swiftly/rollback.rb +78 -0
- data/lib/swiftly/setup.rb +34 -0
- data/lib/swiftly/ssh.rb +36 -0
- data/lib/swiftly/templates/config_global.erb +3 -0
- data/lib/swiftly/templates/config_project.erb +11 -0
- data/lib/swiftly/templates/gitignore.erb +7 -0
- data/lib/swiftly/templates/post_type.erb +98 -0
- data/lib/swiftly/templates/swiftlyfile.erb +21 -0
- data/lib/swiftly/version.rb +4 -0
- data/swiftly.gemspec +61 -0
- data/test/test_swiftly_spec.rb +18 -0
- metadata +175 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
require "thor/group"
|
2
|
+
|
3
|
+
module Swiftly
|
4
|
+
class ConfigSwiftlyfileGenerator < Thor::Group
|
5
|
+
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
argument :db_host
|
9
|
+
argument :db_user
|
10
|
+
argument :db_pass
|
11
|
+
|
12
|
+
desc "Handles the creation of the _templates file."
|
13
|
+
|
14
|
+
def self.source_root
|
15
|
+
File.dirname(__FILE__)
|
16
|
+
end
|
17
|
+
|
18
|
+
def create
|
19
|
+
|
20
|
+
settings = Swiftly::Config.load :global
|
21
|
+
|
22
|
+
template(
|
23
|
+
File.join(
|
24
|
+
'templates',
|
25
|
+
'swiftlyfile.erb'
|
26
|
+
),
|
27
|
+
File.join(
|
28
|
+
settings[:sites_path],
|
29
|
+
'Swiftlyfile',
|
30
|
+
)
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "thor/group"
|
2
|
+
|
3
|
+
module Swiftly
|
4
|
+
class ConfigTemplateGenerator < Thor::Group
|
5
|
+
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
desc "Handles the creation of the _templates file."
|
9
|
+
|
10
|
+
def self.source_root
|
11
|
+
File.dirname(__FILE__)
|
12
|
+
end
|
13
|
+
|
14
|
+
def create
|
15
|
+
|
16
|
+
settings = Swiftly::Config.load :global
|
17
|
+
|
18
|
+
template(
|
19
|
+
File.join(
|
20
|
+
'templates',
|
21
|
+
'config_templates.erb'
|
22
|
+
),
|
23
|
+
File.join(
|
24
|
+
settings[:sites_path],
|
25
|
+
'config',
|
26
|
+
'templates',
|
27
|
+
'_templates.yml'
|
28
|
+
)
|
29
|
+
)
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'swiftly/configure_all'
|
3
|
+
require 'swiftly/configure_local'
|
4
|
+
require 'swiftly/configure_staging'
|
5
|
+
require 'swiftly/configure_production'
|
6
|
+
require 'swiftly/app_module'
|
7
|
+
|
8
|
+
module Swiftly
|
9
|
+
class Configure < Thor
|
10
|
+
|
11
|
+
include Thor::Actions
|
12
|
+
include Helpers
|
13
|
+
|
14
|
+
desc "local [COMMAND]", "Configure local settings"
|
15
|
+
subcommand "local", Local
|
16
|
+
|
17
|
+
desc "staging [COMMAND]", "configure staging settings"
|
18
|
+
subcommand "staging", Staging
|
19
|
+
|
20
|
+
desc "production [COMMAND]", "configure production settings"
|
21
|
+
subcommand "production", Production
|
22
|
+
|
23
|
+
desc "all", "Configure all"
|
24
|
+
subcommand "all", All
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,181 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'swiftly/app_module'
|
3
|
+
require 'swiftly/configure'
|
4
|
+
|
5
|
+
module Swiftly
|
6
|
+
class All < Thor
|
7
|
+
|
8
|
+
include Helpers
|
9
|
+
|
10
|
+
desc "all", "Configure all"
|
11
|
+
|
12
|
+
def all()
|
13
|
+
|
14
|
+
say # spacer
|
15
|
+
|
16
|
+
say "\t\t#{APP_NAME} #{VERSION} Development Manager\n\n", :blue
|
17
|
+
|
18
|
+
say_status "#{APP_NAME}:", "Thanks for trying out #{APP_NAME}. Lets get started!", :green
|
19
|
+
|
20
|
+
current = Swiftly::Config.load :global
|
21
|
+
|
22
|
+
global_settings = {
|
23
|
+
version: VERSION,
|
24
|
+
sites_path: current[:sites_path].nil? ? 'not set' : current[:sites_path],
|
25
|
+
}
|
26
|
+
|
27
|
+
swiftly_settings = {
|
28
|
+
local: {
|
29
|
+
db_host: current[:local][:db_host].nil? ? 'not set' : current[:local][:db_host],
|
30
|
+
db_user: current[:local][:db_user].nil? ? 'not set' : current[:local][:db_user],
|
31
|
+
db_pass: current[:local][:db_pass].nil? ? 'not set' : current[:local][:db_pass]
|
32
|
+
},
|
33
|
+
staging: {
|
34
|
+
domain: current[:staging][:domain].nil? ? 'not set' : current[:staging][:domain],
|
35
|
+
db_host: current[:staging][:db_host].nil? ? 'not set' : current[:staging][:db_host],
|
36
|
+
db_user: current[:staging][:db_user].nil? ? 'not set' : current[:staging][:db_user],
|
37
|
+
db_pass: current[:staging][:db_pass].nil? ? 'not set' : current[:staging][:db_pass]
|
38
|
+
},
|
39
|
+
production: {
|
40
|
+
domain: current[:production][:domain].nil? ? 'not set' : current[:production][:domain],
|
41
|
+
db_host: current[:production][:db_host].nil? ? 'not set' : current[:production][:db_host],
|
42
|
+
db_user: current[:production][:db_user].nil? ? 'not set' : current[:production][:db_user],
|
43
|
+
db_pass: current[:production][:db_pass].nil? ? 'not set' : current[:production][:db_pass]
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
questions = {
|
48
|
+
sites_path: "\n\n--> What is the absolute path to the folder \n\s\s\s\swhere you keep all of your sites? Currently: (\e[0;m#{global_settings[:sites_path]}\e[33;m):",
|
49
|
+
local_db_host: "\n--> What is your local hostname? Currently: (\e[0;m#{swiftly_settings[:local][:db_host]}\e[33;m):",
|
50
|
+
local_db_user: "\n--> What is your local mysql username? Currently: (\e[0;m#{swiftly_settings[:local][:db_user]}\e[33;m):",
|
51
|
+
local_db_pass: "\n--> What is your local mysql password?",
|
52
|
+
staging_server_domain: "\n--> What is your staging server domain? Currently: (\e[0;m#{swiftly_settings[:staging][:domain]}\e[33;m):",
|
53
|
+
staging_db_host: "\n--> What is your staging server hostname? Currently: (\e[0;m#{swiftly_settings[:staging][:db_host]}\e[33;m):",
|
54
|
+
staging_db_user: "\n--> What is your staging server mysql username? Currently: (\e[0;m#{swiftly_settings[:staging][:db_user]}\e[33;m):",
|
55
|
+
staging_db_pass: "\n--> What is your staging server mysql password?",
|
56
|
+
production_server_domain: "\n--> What is your production server domain? Currently: (\e[0;m#{swiftly_settings[:production][:domain]}\e[33;m):",
|
57
|
+
production_db_host: "\n--> What is your production server hostname? Currently: (\e[0;m#{swiftly_settings[:production][:db_host]}\e[33;m):",
|
58
|
+
production_db_user: "\n--> What is your production server mysql username? Currently: (\e[0;m#{swiftly_settings[:production][:db_user]}\e[33;m):",
|
59
|
+
production_db_pass: "\n--> What is your production server mysql password?"
|
60
|
+
}
|
61
|
+
|
62
|
+
responses = ['y','Y','']
|
63
|
+
|
64
|
+
questions.each do |type, question|
|
65
|
+
|
66
|
+
confirm = false
|
67
|
+
|
68
|
+
until confirm == true do
|
69
|
+
|
70
|
+
if type === :sites_path
|
71
|
+
|
72
|
+
answer = File.expand_path( ask question, :yellow, :path => true )
|
73
|
+
|
74
|
+
elsif type === :local_db_pass ||
|
75
|
+
type === :staging_db_pass ||
|
76
|
+
type === :production_db_pass
|
77
|
+
|
78
|
+
answer = ask question, :yellow, :echo => false
|
79
|
+
|
80
|
+
else
|
81
|
+
|
82
|
+
answer = ask question, :yellow
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
if type === :sites_path && answer == ''
|
87
|
+
|
88
|
+
answer = global_settings[:sites_path]
|
89
|
+
|
90
|
+
elsif type === :local_db_pass ||
|
91
|
+
type === :staging_db_pass ||
|
92
|
+
type === :production_db_pass
|
93
|
+
|
94
|
+
password = ask "\n\n--> Please re-enter your password?", :yellow, :echo => false
|
95
|
+
|
96
|
+
say #spacer
|
97
|
+
|
98
|
+
until password == answer
|
99
|
+
|
100
|
+
say_status "#{APP_NAME}:", "Passwords did not match please try again.\n", :yellow
|
101
|
+
|
102
|
+
answer = ask question, :yellow, :echo => false
|
103
|
+
|
104
|
+
password = ask "\n--> Please re-enter your password?\n", :yellow, :echo => false
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
if password == answer
|
109
|
+
|
110
|
+
if answer == ''
|
111
|
+
|
112
|
+
answer = nil
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
confirm = true
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
elsif answer == ''
|
121
|
+
|
122
|
+
if question[/\e\[[0-9;]*[a-zA-Z](.*)\e\[[0-9;]*[a-zA-Z]/, 1] == ''
|
123
|
+
|
124
|
+
answer = nil
|
125
|
+
|
126
|
+
else
|
127
|
+
|
128
|
+
answer = question[/\e\[[0-9;]*[a-zA-Z](.*)\e\[[0-9;]*[a-zA-Z]/, 1]
|
129
|
+
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
unless type === :local_db_pass ||
|
134
|
+
type === :staging_db_pass ||
|
135
|
+
type === :production_db_pass
|
136
|
+
|
137
|
+
if responses.include? ask( "\n--> Got it! Is this correct? \e[32;m#{answer}\e[0;m [Y|n]")
|
138
|
+
|
139
|
+
confirm = true
|
140
|
+
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
end
|
145
|
+
|
146
|
+
if type === :sites_path
|
147
|
+
|
148
|
+
global_settings[type] = answer
|
149
|
+
|
150
|
+
else
|
151
|
+
|
152
|
+
split = type.to_s.split('_')
|
153
|
+
environment = split.first.to_sym
|
154
|
+
setting = split[1] + '_' + split.last
|
155
|
+
|
156
|
+
if type === :staging_server_domain ||
|
157
|
+
type === :production_server_domain
|
158
|
+
|
159
|
+
setting = split.last
|
160
|
+
|
161
|
+
end
|
162
|
+
|
163
|
+
swiftly_settings[environment][setting.to_sym] = answer
|
164
|
+
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
168
|
+
|
169
|
+
say_status "\n\s\s\s\sAll done thanks!", "From now on I will use your new settings."
|
170
|
+
|
171
|
+
File.open(Swiftly::Config.global_file,'w') do |h|
|
172
|
+
|
173
|
+
h.write swiftly_settings.to_yaml
|
174
|
+
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
default_task :all
|
179
|
+
|
180
|
+
end
|
181
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'swiftly/app_module'
|
3
|
+
require 'swiftly/configure'
|
4
|
+
|
5
|
+
module Swiftly
|
6
|
+
class Local < Thor
|
7
|
+
|
8
|
+
include Helpers
|
9
|
+
|
10
|
+
desc "configure local host", "Configure local hostname"
|
11
|
+
|
12
|
+
def host( value = false )
|
13
|
+
|
14
|
+
update_setting_dialog( :local, :db_host, value )
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "configure local username", "Configure local database username"
|
19
|
+
|
20
|
+
def username( value = false )
|
21
|
+
|
22
|
+
update_setting_dialog( :local, :db_user, value )
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "configure local password", "Configure local database password"
|
27
|
+
|
28
|
+
def password( value = false )
|
29
|
+
|
30
|
+
update_setting_dialog( :local, :db_pass, value )
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'swiftly/app_module'
|
3
|
+
require 'swiftly/configure'
|
4
|
+
|
5
|
+
module Swiftly
|
6
|
+
class Production < Thor
|
7
|
+
|
8
|
+
include Helpers
|
9
|
+
|
10
|
+
desc "configure production domain", "Configure production domain"
|
11
|
+
|
12
|
+
def domain( value = false )
|
13
|
+
|
14
|
+
update_setting_dialog( :production, :domain, value )
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "configure production host", "Configure production hostname"
|
19
|
+
|
20
|
+
def host( value = false )
|
21
|
+
|
22
|
+
update_setting_dialog( :production, :db_host, value )
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "configure production username", "Configure production database username"
|
27
|
+
|
28
|
+
def username( value = false )
|
29
|
+
|
30
|
+
update_setting_dialog( :production, :db_user, value )
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
desc "configure production password", "Configure production database password"
|
35
|
+
|
36
|
+
def password( value = false )
|
37
|
+
|
38
|
+
update_setting_dialog( :production, :db_pass, value )
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'swiftly/app_module'
|
3
|
+
|
4
|
+
module Swiftly
|
5
|
+
class Staging < Thor
|
6
|
+
|
7
|
+
include Helpers
|
8
|
+
|
9
|
+
desc "configure staging domain", "Configure staging domain"
|
10
|
+
|
11
|
+
def domain( value = false )
|
12
|
+
|
13
|
+
update_setting_dialog( :staging, :domain, value)
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "configure staging host", "Configure staging hostname"
|
18
|
+
|
19
|
+
def host( hostname = false )
|
20
|
+
|
21
|
+
update_setting_dialog( :staging, :db_host, value)
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
desc "configure staging username", "Configure staging database username"
|
26
|
+
|
27
|
+
def username( username = false )
|
28
|
+
|
29
|
+
update_setting_dialog( :staging, :db_user, value)
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "configure staging password", "Configure staging database password"
|
34
|
+
|
35
|
+
def password( password = false )
|
36
|
+
|
37
|
+
update_setting_dialog( :staging, :db_pass, value)
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'zip'
|
3
|
+
require 'swiftly/project'
|
4
|
+
require 'swiftly/database'
|
5
|
+
require 'swiftly/app_module'
|
6
|
+
require 'swiftly/create_project'
|
7
|
+
require 'swiftly/create_git'
|
8
|
+
require 'swiftly/create_wordpress'
|
9
|
+
|
10
|
+
module Swiftly
|
11
|
+
class Create < Thor
|
12
|
+
|
13
|
+
include Helpers
|
14
|
+
|
15
|
+
desc "create project PROJECT_NAME", "Create a create project"
|
16
|
+
|
17
|
+
def project( project_name )
|
18
|
+
|
19
|
+
project_path = File.join(
|
20
|
+
Swiftly::Config.load( :global )[:sites_path],
|
21
|
+
project_name
|
22
|
+
)
|
23
|
+
|
24
|
+
CreateProject.new([
|
25
|
+
project_name,
|
26
|
+
project_path
|
27
|
+
]).invoke_all
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "create git PROJECT_NAME", "Create a create git enabled project"
|
32
|
+
|
33
|
+
def git( project_name )
|
34
|
+
|
35
|
+
settings = Swiftly::Config.load :global
|
36
|
+
|
37
|
+
project_path = File.join(
|
38
|
+
settings[:sites_path],
|
39
|
+
project_name
|
40
|
+
)
|
41
|
+
|
42
|
+
CreateProject.new( [
|
43
|
+
project_name,
|
44
|
+
project_path
|
45
|
+
] ).invoke_all
|
46
|
+
|
47
|
+
CreateGit.new([
|
48
|
+
project_path
|
49
|
+
]).invoke_all
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
desc "create git PROJECT_NAME", "Create a create wordpress (git enabled) project"
|
54
|
+
method_option :template, aliases: '-t', type: :string, default: :default, desc: 'Provide the name of the template to use'
|
55
|
+
|
56
|
+
|
57
|
+
def wordpress project_name
|
58
|
+
|
59
|
+
global_settings = Swiftly::Config.load :global
|
60
|
+
project_settings = Swiftly::Config.load :swiftly
|
61
|
+
|
62
|
+
template = Swiftly::Packages.load({
|
63
|
+
framework: :wordpress,
|
64
|
+
type: :template,
|
65
|
+
name: options[:template]
|
66
|
+
})
|
67
|
+
|
68
|
+
project_path = File.join(
|
69
|
+
global_settings[:sites_path],
|
70
|
+
project_name
|
71
|
+
)
|
72
|
+
|
73
|
+
CreateProject.new([
|
74
|
+
project_name,
|
75
|
+
project_path
|
76
|
+
]).invoke_all
|
77
|
+
|
78
|
+
CreateWordpress.new([
|
79
|
+
project_name,
|
80
|
+
template,
|
81
|
+
project_settings,
|
82
|
+
project_path
|
83
|
+
]).invoke_all
|
84
|
+
|
85
|
+
CreateGit.new([
|
86
|
+
project_path
|
87
|
+
]).invoke_all
|
88
|
+
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require "thor/group"
|
2
|
+
require 'rubygems'
|
3
|
+
require 'active_support'
|
4
|
+
require 'active_support/core_ext/string'
|
5
|
+
require 'git'
|
6
|
+
|
7
|
+
module Swiftly
|
8
|
+
class CreateGit < Thor::Group
|
9
|
+
|
10
|
+
include Thor::Actions
|
11
|
+
|
12
|
+
argument :project_path
|
13
|
+
|
14
|
+
desc "Handles the creation of a git project."
|
15
|
+
|
16
|
+
def self.source_root
|
17
|
+
|
18
|
+
File.dirname(__FILE__)
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_git()
|
23
|
+
|
24
|
+
git = Git.init( @project_path )
|
25
|
+
|
26
|
+
template(
|
27
|
+
File.join(
|
28
|
+
'templates',
|
29
|
+
'gitignore.erb'
|
30
|
+
),
|
31
|
+
File.join( @project_path, '.gitignore' )
|
32
|
+
) unless File.exists? File.join( @project_path, '.gitignore' )
|
33
|
+
|
34
|
+
|
35
|
+
git.add
|
36
|
+
git.commit_all('initial commit')
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require "thor/group"
|
2
|
+
require 'rubygems'
|
3
|
+
require 'active_support'
|
4
|
+
require 'swiftly/project'
|
5
|
+
require 'swiftly/app_module'
|
6
|
+
require 'swiftly/config_project_generator'
|
7
|
+
require 'active_support/core_ext/string'
|
8
|
+
|
9
|
+
module Swiftly
|
10
|
+
class CreateProject < Thor::Group
|
11
|
+
|
12
|
+
include Thor::Actions
|
13
|
+
include Helpers
|
14
|
+
|
15
|
+
argument :project_name
|
16
|
+
argument :project_path
|
17
|
+
|
18
|
+
desc "Handles the creation of project files."
|
19
|
+
|
20
|
+
def self.source_root
|
21
|
+
|
22
|
+
File.dirname(__FILE__)
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
def no_commands
|
27
|
+
|
28
|
+
def allow_project_creation
|
29
|
+
|
30
|
+
if Swiftly::Project.exists?(@project_name)
|
31
|
+
|
32
|
+
say #spacer
|
33
|
+
say_status "#{APP_NAME}:", "There is already a project named #{@project_path}", :red
|
34
|
+
abort
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def create_assets()
|
41
|
+
|
42
|
+
allow_project_creation
|
43
|
+
|
44
|
+
['architecture', 'doc', 'emails', 'fonts', 'images', 'raster', 'vector'].each do |path|
|
45
|
+
|
46
|
+
empty_directory( File.join( @project_path ,"_resources", "assets", path ) )
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def create_dump_directories
|
52
|
+
|
53
|
+
['local','production','staging','temp'].each do |path|
|
54
|
+
|
55
|
+
empty_directory( File.join( @project_path , "_backups", "dumps", path ) )
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
def create_project_config
|
62
|
+
|
63
|
+
ConfigProjectGenerator.new.create(@project_path)
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|