theme-juice 0.7.7 → 0.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +204 -204
  3. data/bin/tj +15 -15
  4. data/lib/theme-juice.rb +46 -46
  5. data/lib/theme-juice/cli.rb +248 -248
  6. data/lib/theme-juice/command.rb +20 -20
  7. data/lib/theme-juice/commands/create.rb +221 -221
  8. data/lib/theme-juice/commands/delete.rb +51 -51
  9. data/lib/theme-juice/commands/deploy.rb +20 -20
  10. data/lib/theme-juice/config.rb +68 -70
  11. data/lib/theme-juice/env.rb +25 -25
  12. data/lib/theme-juice/io.rb +323 -323
  13. data/lib/theme-juice/project.rb +35 -35
  14. data/lib/theme-juice/task.rb +42 -42
  15. data/lib/theme-juice/tasks/create_confirm.rb +33 -33
  16. data/lib/theme-juice/tasks/create_success.rb +42 -42
  17. data/lib/theme-juice/tasks/database.rb +50 -50
  18. data/lib/theme-juice/tasks/delete_confirm.rb +24 -24
  19. data/lib/theme-juice/tasks/delete_success.rb +31 -31
  20. data/lib/theme-juice/tasks/dns.rb +45 -45
  21. data/lib/theme-juice/tasks/dot_env.rb +53 -53
  22. data/lib/theme-juice/tasks/entry.rb +50 -50
  23. data/lib/theme-juice/tasks/hosts.rb +43 -43
  24. data/lib/theme-juice/tasks/import_database.rb +28 -28
  25. data/lib/theme-juice/tasks/landrush.rb +33 -33
  26. data/lib/theme-juice/tasks/list.rb +50 -50
  27. data/lib/theme-juice/tasks/location.rb +23 -23
  28. data/lib/theme-juice/tasks/nginx.rb +51 -51
  29. data/lib/theme-juice/tasks/repo.rb +49 -49
  30. data/lib/theme-juice/tasks/synced_folder.rb +30 -30
  31. data/lib/theme-juice/tasks/theme.rb +34 -34
  32. data/lib/theme-juice/tasks/vm.rb +30 -30
  33. data/lib/theme-juice/tasks/vm_customfile.rb +42 -42
  34. data/lib/theme-juice/tasks/vm_location.rb +32 -32
  35. data/lib/theme-juice/tasks/vm_plugins.rb +32 -32
  36. data/lib/theme-juice/tasks/vm_provision.rb +39 -39
  37. data/lib/theme-juice/tasks/vm_restart.rb +25 -25
  38. data/lib/theme-juice/tasks/wp_cli.rb +52 -52
  39. data/lib/theme-juice/util.rb +45 -45
  40. data/lib/theme-juice/version.rb +5 -5
  41. metadata +6 -7
@@ -1,35 +1,35 @@
1
- # encoding: UTF-8
2
-
3
- module ThemeJuice
4
- module Project
5
- attr_accessor :name
6
- attr_accessor :location
7
- attr_accessor :url
8
- attr_accessor :theme
9
- attr_accessor :vm_root
10
- attr_accessor :vm_location
11
- attr_accessor :vm_srv
12
- attr_accessor :vm_restart
13
- attr_accessor :repository
14
- attr_accessor :db_host
15
- attr_accessor :db_name
16
- attr_accessor :db_user
17
- attr_accessor :db_pass
18
- attr_accessor :db_import
19
- attr_accessor :db_drop
20
- attr_accessor :bare
21
- attr_accessor :skip_repo
22
- attr_accessor :skip_db
23
- attr_accessor :use_defaults
24
- attr_accessor :no_wp
25
- attr_accessor :no_db
26
-
27
- def inspect
28
- res = []
29
- self.instance_variables.each { |k, _| res << "#{k[1..-1]}: #{instance_variable_get(k)}" }
30
- res.sort
31
- end
32
-
33
- extend self
34
- end
35
- end
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Project
5
+ attr_accessor :name
6
+ attr_accessor :location
7
+ attr_accessor :url
8
+ attr_accessor :theme
9
+ attr_accessor :vm_root
10
+ attr_accessor :vm_location
11
+ attr_accessor :vm_srv
12
+ attr_accessor :vm_restart
13
+ attr_accessor :repository
14
+ attr_accessor :db_host
15
+ attr_accessor :db_name
16
+ attr_accessor :db_user
17
+ attr_accessor :db_pass
18
+ attr_accessor :db_import
19
+ attr_accessor :db_drop
20
+ attr_accessor :bare
21
+ attr_accessor :skip_repo
22
+ attr_accessor :skip_db
23
+ attr_accessor :use_defaults
24
+ attr_accessor :no_wp
25
+ attr_accessor :no_db
26
+
27
+ def inspect
28
+ res = []
29
+ self.instance_variables.each { |k, _| res << "#{k[1..-1]}: #{instance_variable_get(k)}" }
30
+ res.sort
31
+ end
32
+
33
+ extend self
34
+ end
35
+ end
@@ -1,42 +1,42 @@
1
- # encoding: UTF-8
2
-
3
- module ThemeJuice
4
- class Task
5
-
6
- def initialize(opts = {})
7
- @env = Env
8
- @io = IO
9
- @project = Project
10
- @config = Config
11
- @util = Util.new
12
- @opts = opts.dup
13
- @tasks = []
14
- end
15
-
16
- def runner
17
- yield @tasks
18
- end
19
-
20
- def execute
21
- @io.error "Method 'execute' not implemented for #{self.class.name}"
22
- end
23
-
24
- def unexecute
25
- @io.error "Method 'unexecute' not implemented for #{self.class.name}"
26
- end
27
-
28
- private
29
-
30
- def vm_root
31
- File.expand_path "#{@env.vm_path}/www"
32
- end
33
-
34
- def vm_location
35
- "#{vm_root}/#{@env.vm_prefix}#{@project.name}"
36
- end
37
-
38
- def vm_srv
39
- "/srv/www/#{@env.vm_prefix}#{@project.name}"
40
- end
41
- end
42
- end
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ class Task
5
+
6
+ def initialize(opts = {})
7
+ @env = Env
8
+ @io = IO
9
+ @project = Project
10
+ @config = Config
11
+ @util = Util.new
12
+ @opts = opts.dup
13
+ @tasks = []
14
+ end
15
+
16
+ def runner
17
+ yield @tasks
18
+ end
19
+
20
+ def execute
21
+ @io.error "Method 'execute' not implemented for #{self.class.name}"
22
+ end
23
+
24
+ def unexecute
25
+ @io.error "Method 'unexecute' not implemented for #{self.class.name}"
26
+ end
27
+
28
+ private
29
+
30
+ def vm_root
31
+ File.expand_path "#{@env.vm_path}/www"
32
+ end
33
+
34
+ def vm_location
35
+ "#{vm_root}/#{@env.vm_prefix}#{@project.name}"
36
+ end
37
+
38
+ def vm_srv
39
+ "/srv/www/#{@env.vm_prefix}#{@project.name}"
40
+ end
41
+ end
42
+ end
@@ -1,33 +1,33 @@
1
- # encoding: UTF-8
2
-
3
- module ThemeJuice
4
- module Tasks
5
- class CreateConfirm < Task
6
-
7
- def initialize(opts = {})
8
- super
9
- end
10
-
11
- def execute
12
- confirm
13
- end
14
-
15
- private
16
-
17
- def confirm
18
- @io.list "Your settings :", :yellow, settings
19
- unless @io.agree? "Do these settings look correct?"
20
- @io.error "Dang typos..."
21
- end
22
- end
23
-
24
- def settings
25
- if @env.verbose
26
- @env.inspect + @project.inspect
27
- else
28
- @project.inspect
29
- end
30
- end
31
- end
32
- end
33
- end
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class CreateConfirm < Task
6
+
7
+ def initialize(opts = {})
8
+ super
9
+ end
10
+
11
+ def execute
12
+ confirm
13
+ end
14
+
15
+ private
16
+
17
+ def confirm
18
+ @io.list "Your settings :", :yellow, settings
19
+ unless @io.agree? "Do these settings look correct?"
20
+ @io.error "Dang typos..."
21
+ end
22
+ end
23
+
24
+ def settings
25
+ if @env.verbose
26
+ @env.inspect + @project.inspect
27
+ else
28
+ @project.inspect
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,42 +1,42 @@
1
- # encoding: UTF-8
2
-
3
- module ThemeJuice
4
- module Tasks
5
- class CreateSuccess < Task
6
-
7
- def initialize(opts = {})
8
- super
9
-
10
- @vm_provision = Tasks::VMProvision.new(opts)
11
- end
12
-
13
- def execute
14
- provision_vm
15
- success
16
- end
17
-
18
- private
19
-
20
- def provision_vm
21
- if @io.agree? "In order to finish creating your project, you need to provision the VM. Do it now?"
22
- @vm_provision.execute
23
- else
24
- @io.notice "Remember, the VM needs to be provisioned before you can use your new site"
25
- end
26
- end
27
-
28
- def success
29
- @io.success "Successfully created project '#{@project.name}'"
30
- @io.list "Your settings :", :yellow, settings
31
- end
32
-
33
- def settings
34
- if @env.verbose
35
- @env.inspect + @project.inspect
36
- else
37
- @project.inspect
38
- end
39
- end
40
- end
41
- end
42
- end
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class CreateSuccess < Task
6
+
7
+ def initialize(opts = {})
8
+ super
9
+
10
+ @vm_provision = Tasks::VMProvision.new(opts)
11
+ end
12
+
13
+ def execute
14
+ provision_vm
15
+ success
16
+ end
17
+
18
+ private
19
+
20
+ def provision_vm
21
+ if @io.agree? "In order to finish creating your project, you need to provision the VM. Do it now?"
22
+ @vm_provision.execute
23
+ else
24
+ @io.notice "Remember, the VM needs to be provisioned before you can use your new site"
25
+ end
26
+ end
27
+
28
+ def success
29
+ @io.success "Successfully created project '#{@project.name}'"
30
+ @io.list "Your settings :", :yellow, settings
31
+ end
32
+
33
+ def settings
34
+ if @env.verbose
35
+ @env.inspect + @project.inspect
36
+ else
37
+ @project.inspect
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,50 +1,50 @@
1
- # encoding: UTF-8
2
-
3
- module ThemeJuice
4
- module Tasks
5
- class Database < Entry
6
-
7
- def initialize(opts = {})
8
- super
9
-
10
- @entry = {
11
- :project => @project.name,
12
- :file => "#{@env.vm_path}/database/init-custom.sql",
13
- :name => "database",
14
- :id => "DB"
15
- }
16
- end
17
-
18
- def execute
19
- if @project.db_host && @project.db_name && @project.db_user && @project.db_pass
20
- create_entry_file
21
- create_entry do
22
- %Q{CREATE DATABASE IF NOT EXISTS `#{@project.db_name}`;
23
- GRANT ALL PRIVILEGES ON `#{@project.db_name}`.* TO '#{@project.db_user}'@'localhost' IDENTIFIED BY '#{@project.db_pass}';}
24
- end
25
- end
26
- end
27
-
28
- def unexecute
29
- remove_entry
30
- drop_database
31
- end
32
-
33
- private
34
-
35
- def drop_database
36
- if @project.db_drop
37
-
38
- # Double check that the database should be dropped
39
- if @io.agree? "Are you sure you want to drop the database for '#{@project.name}'?"
40
- @io.log "Dropping database"
41
- @util.run_inside_vm [], :verbose => @env.verbose do |cmds|
42
- cmds << "cd #{@project.vm_srv}"
43
- cmds << "wp db drop --yes"
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
50
- end
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class Database < Entry
6
+
7
+ def initialize(opts = {})
8
+ super
9
+
10
+ @entry = {
11
+ :project => @project.name,
12
+ :file => "#{@env.vm_path}/database/init-custom.sql",
13
+ :name => "database",
14
+ :id => "DB"
15
+ }
16
+ end
17
+
18
+ def execute
19
+ if @project.db_host && @project.db_name && @project.db_user && @project.db_pass
20
+ create_entry_file
21
+ create_entry do
22
+ %Q{CREATE DATABASE IF NOT EXISTS `#{@project.db_name}`;
23
+ GRANT ALL PRIVILEGES ON `#{@project.db_name}`.* TO '#{@project.db_user}'@'localhost' IDENTIFIED BY '#{@project.db_pass}';}
24
+ end
25
+ end
26
+ end
27
+
28
+ def unexecute
29
+ remove_entry
30
+ drop_database
31
+ end
32
+
33
+ private
34
+
35
+ def drop_database
36
+ if @project.db_drop
37
+
38
+ # Double check that the database should be dropped
39
+ if @io.agree? "Are you sure you want to drop the database for '#{@project.name}'?"
40
+ @io.log "Dropping database"
41
+ @util.run_inside_vm [], :verbose => @env.verbose do |cmds|
42
+ cmds << "cd #{@project.vm_srv}"
43
+ cmds << "wp db drop --yes"
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,24 +1,24 @@
1
- # encoding: UTF-8
2
-
3
- module ThemeJuice
4
- module Tasks
5
- class DeleteConfirm < Task
6
-
7
- def initialize(opts = {})
8
- super
9
- end
10
-
11
- def unexecute
12
- confirm
13
- end
14
-
15
- private
16
-
17
- def confirm
18
- unless @io.agree? "Are you sure you want to remove '#{@project.name}'?"
19
- @io.error "Aborting mission"
20
- end
21
- end
22
- end
23
- end
24
- end
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class DeleteConfirm < Task
6
+
7
+ def initialize(opts = {})
8
+ super
9
+ end
10
+
11
+ def unexecute
12
+ confirm
13
+ end
14
+
15
+ private
16
+
17
+ def confirm
18
+ unless @io.agree? "Are you sure you want to remove '#{@project.name}'?"
19
+ @io.error "Aborting mission"
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end