theme-juice 0.10.3 → 0.11.0

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.
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+
3
+ namespace :env do
4
+
5
+ desc "Push environment file to remote"
6
+ task :push do
7
+ on roles(:app) do
8
+ if File.exist? ".env.#{fetch(:stage)}"
9
+ upload! ".env.#{fetch(:stage)}", shared_path.join(".env.#{fetch(:stage)}")
10
+ else
11
+ error "Could not locate local .env.#{fetch(:stage)} file"
12
+ end
13
+ end
14
+ end
15
+
16
+ desc "Pull environment file from remote"
17
+ task :pull do
18
+ on roles(:app) do
19
+ download! shared_path.join(".env.#{fetch(:stage)}"), ".env.#{fetch(:stage)}"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,39 @@
1
+ # encoding: UTF-8
2
+
3
+ namespace :rsync do
4
+
5
+ after :stage, :precompile do
6
+ Dir.chdir fetch(:rsync_stage) do
7
+ fetch(:rsync_install, []).each { |t| system t }
8
+ end
9
+ end
10
+
11
+ after :precompile, :ignore do
12
+ Dir.chdir fetch(:rsync_stage) do
13
+ fetch(:rsync_ignore, []).each { |f| system "rm #{f}" }
14
+ end
15
+ end
16
+
17
+ after "deploy:finished", :clean do
18
+ run_locally do
19
+ execute :rm, "-rf", fetch(:rsync_stage)
20
+ end
21
+ end
22
+
23
+ namespace :prepare do
24
+
25
+ before "deploy:check:directories", :directories do
26
+ on roles(:app) do
27
+ within fetch(:deploy_to) do
28
+ execute :mkdir, "-p", fetch(:rsync_cache)
29
+ end
30
+ end
31
+ end
32
+
33
+ before "deploy:check:linked_files", :files do
34
+ on roles(:app) do
35
+ fetch(:linked_files).each { |f| execute :touch, shared_path.join(f) }
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+
3
+ namespace :uploads do
4
+
5
+ desc "Push local uploads to remote"
6
+ task :push do
7
+ on roles(:app) do
8
+ upload! fetch(:vm_uploads_dir), fetch(:uploads_dir), {
9
+ recursive: true
10
+ }
11
+ end
12
+ end
13
+
14
+ desc "Pull remote uploads to local"
15
+ task :pull do
16
+ on roles(:app) do
17
+ download! fetch(:uploads_dir), fetch(:vm_uploads_dir), {
18
+ recursive: true
19
+ }
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,36 @@
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class Invoke < Task
6
+ attr_reader :args
7
+
8
+ def initialize(args = [])
9
+ super
10
+
11
+ @args = args
12
+ end
13
+
14
+ def execute
15
+ invoke_capistrano
16
+ end
17
+
18
+ private
19
+
20
+ def invoke_capistrano
21
+ @io.log "Invoking Capistrano"
22
+
23
+ case args.last
24
+ when nil
25
+ @env.cap.invoke "deploy"
26
+ when "rollback"
27
+ @env.cap.invoke "deploy:rollback"
28
+ when "setup", "check"
29
+ @env.cap.invoke "deploy:check"
30
+ else
31
+ @env.cap.invoke *args
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,38 @@
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class Load < Task
6
+
7
+ def initialize
8
+ super
9
+ end
10
+
11
+ def execute
12
+ load_capistrano
13
+ load_tasks
14
+ end
15
+
16
+ private
17
+
18
+ def load_capistrano
19
+ @io.log "Loading Capistrano"
20
+
21
+ require "capistrano/setup"
22
+ require "capistrano/deploy"
23
+ require "capistrano/rsync"
24
+ require "capistrano/slackify" if @config.deployment.key? "slack"
25
+ require "capistrano/framework"
26
+ end
27
+
28
+ def load_tasks
29
+ @io.log "Loading Capistrano tasks"
30
+
31
+ tasks_dir = "#{File.dirname(__FILE__)}/capistrano"
32
+ tasks = %w[db uploads env rsync]
33
+
34
+ tasks.each { |task| load "#{tasks_dir}/#{task}.rb" }
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,56 @@
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class Settings < Task
6
+ include Capistrano::DSL
7
+
8
+ def initialize
9
+ super
10
+ end
11
+
12
+ def execute
13
+ configure_required_settings
14
+ configure_optional_settings
15
+ end
16
+
17
+ private
18
+
19
+ # Required global settings
20
+ def configure_required_settings
21
+ @io.log "Configuring Capistrano"
22
+
23
+ begin
24
+ set :application, @config.deployment.application.name
25
+
26
+ set :linked_files, fetch(:linked_files, []).concat(fetch(:shared_files, []))
27
+ set :linked_dirs, fetch(:linked_dirs, []).push(fetch(:uploads_dir, ""))
28
+
29
+ %w[settings repository].each do |task|
30
+ @config.deployment.send(task).symbolize_keys.each do |key, value|
31
+ set key, proc { value }
32
+ end
33
+ end
34
+ rescue NoMethodError => err
35
+ @io.error "Oops! It looks like you're missing a few deployment settings" do
36
+ puts err
37
+ end
38
+ end
39
+ end
40
+
41
+ # Optional namespaced settings
42
+ def configure_optional_settings
43
+ set :rsync_ignore, @config.deployment.stages.send(@env.stage)
44
+ .symbolize_keys.fetch(:ignore, []) rescue nil
45
+
46
+ %w[rsync slack].each do |task|
47
+ if @config.deployment.key? task
48
+ @config.deployment.send(task).each do |key, value|
49
+ set :"#{task}_#{key}", proc { value }
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,39 @@
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class Stage < Task
6
+ include Capistrano::DSL
7
+
8
+ def initialize
9
+ super
10
+
11
+ @stage = @config.deployment.stages.send(@env.stage)
12
+ end
13
+
14
+ def execute
15
+ configure_stage
16
+ end
17
+
18
+ private
19
+
20
+ def configure_stage
21
+ @io.log "Configuring stage '#{@env.stage}'"
22
+
23
+ stages = "#{@env.stage}"
24
+
25
+ server @stage.server, {
26
+ :user => @stage.user,
27
+ :roles => @stage.roles
28
+ }
29
+
30
+ set :deploy_to, -> { @stage.path }
31
+ set :stage_url, -> { @stage.url }
32
+ set :uploads_dir, -> { @stage.uploads }
33
+ set :shared_files, -> { @stage.shared }
34
+ set :tmp_dir, -> { @stage.tmp }
35
+ set :stage, -> { @env.stage }
36
+ end
37
+ end
38
+ end
39
+ end
@@ -27,7 +27,7 @@ module ThemeJuice
27
27
 
28
28
  def install_theme
29
29
  @io.log "Running theme installation"
30
- @config.install
30
+ @config.command :install
31
31
  end
32
32
  end
33
33
  end
@@ -0,0 +1,38 @@
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class VMStage < Task
6
+ include Capistrano::DSL
7
+
8
+ def initialize
9
+ super
10
+
11
+ @vagrant = @config.deployment.stages.vagrant
12
+ end
13
+
14
+ def execute
15
+ configure_vm_stage
16
+ end
17
+
18
+ private
19
+
20
+ def configure_vm_stage
21
+ @io.log "Configuring VM stage"
22
+
23
+ server @vagrant.server, {
24
+ :user => @vagrant.user,
25
+ :password => @vagrant.pass,
26
+ :roles => @vagrant.roles,
27
+ :no_release => true
28
+ }
29
+
30
+ set :dev_path, -> { @vagrant.path }
31
+ set :vm_url, -> { @vagrant.url }
32
+ set :vm_uploads_dir, -> { @vagrant.uploads }
33
+ set :vm_backup_dir, -> { @vagrant.backup }
34
+ set :vm_tmp_dir, -> { @vagrant.tmp }
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module ThemeJuice
4
- VERSION = "0.10.3"
4
+ VERSION = "0.11.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: theme-juice
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.3
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ezekiel Gabrielse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-19 00:00:00.000000000 Z
11
+ date: 2015-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -16,42 +16,84 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '0.19'
19
+ version: 0.19.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '0.19'
26
+ version: 0.19.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faker
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '1.4'
33
+ version: 1.4.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: '1.4'
40
+ version: 1.4.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: os
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '0.9'
47
+ version: 0.9.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '0.9'
54
+ version: 0.9.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: capistrano
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 3.4.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 3.4.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: capistrano-slackify
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 2.4.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 2.4.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: capistrano-rsync-bladrak
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 1.3.2
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 1.3.2
55
97
  - !ruby/object:Gem::Dependency
56
98
  name: bundler
57
99
  requirement: !ruby/object:Gem::Requirement
@@ -80,10 +122,10 @@ dependencies:
80
122
  - - ~>
81
123
  - !ruby/object:Gem::Version
82
124
  version: '10.4'
83
- description: tj is a WordPress development command line utility that allows you to
84
- scaffold out an entire Vagrant development environment in seconds (using an Apache
85
- fork of VVV called VVV-Apache as the VM). It also helps you manage dependencies
86
- and build tools, and can even handle your deployments.
125
+ description: Theme Juice (tj) is a command line utility modern for WordPress development.
126
+ It allows you to scaffold out a Vagrant development environment in seconds, and
127
+ generate/manage an unlimited number of development projects. It also helps you manage
128
+ dependencies and build tools, and can even handle your deployments.
87
129
  email:
88
130
  - ezekg@yahoo.com
89
131
  executables:
@@ -101,6 +143,7 @@ files:
101
143
  - lib/theme-juice/commands/deploy.rb
102
144
  - lib/theme-juice/config.rb
103
145
  - lib/theme-juice/env.rb
146
+ - lib/theme-juice/helpers/hash_helper.rb
104
147
  - lib/theme-juice/helpers/singleton_helper.rb
105
148
  - lib/theme-juice/io.rb
106
149
  - lib/theme-juice/man/tj
@@ -116,6 +159,10 @@ files:
116
159
  - lib/theme-juice/project.rb
117
160
  - lib/theme-juice/task.rb
118
161
  - lib/theme-juice/tasks/apache.rb
162
+ - lib/theme-juice/tasks/capistrano/db.rb
163
+ - lib/theme-juice/tasks/capistrano/env.rb
164
+ - lib/theme-juice/tasks/capistrano/rsync.rb
165
+ - lib/theme-juice/tasks/capistrano/uploads.rb
119
166
  - lib/theme-juice/tasks/create_confirm.rb
120
167
  - lib/theme-juice/tasks/create_success.rb
121
168
  - lib/theme-juice/tasks/database.rb
@@ -126,11 +173,15 @@ files:
126
173
  - lib/theme-juice/tasks/entry.rb
127
174
  - lib/theme-juice/tasks/forward_ports.rb
128
175
  - lib/theme-juice/tasks/import_database.rb
176
+ - lib/theme-juice/tasks/invoke.rb
129
177
  - lib/theme-juice/tasks/landrush.rb
130
178
  - lib/theme-juice/tasks/list.rb
179
+ - lib/theme-juice/tasks/load.rb
131
180
  - lib/theme-juice/tasks/location.rb
132
181
  - lib/theme-juice/tasks/nginx.rb
133
182
  - lib/theme-juice/tasks/repo.rb
183
+ - lib/theme-juice/tasks/settings.rb
184
+ - lib/theme-juice/tasks/stage.rb
134
185
  - lib/theme-juice/tasks/synced_folder.rb
135
186
  - lib/theme-juice/tasks/theme.rb
136
187
  - lib/theme-juice/tasks/vm_box.rb
@@ -139,6 +190,7 @@ files:
139
190
  - lib/theme-juice/tasks/vm_plugins.rb
140
191
  - lib/theme-juice/tasks/vm_provision.rb
141
192
  - lib/theme-juice/tasks/vm_restart.rb
193
+ - lib/theme-juice/tasks/vm_stage.rb
142
194
  - lib/theme-juice/tasks/wp_cli.rb
143
195
  - lib/theme-juice/util.rb
144
196
  - lib/theme-juice/version.rb