theme-juice 0.10.3 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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