wslave 0.0.15 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,9 +1,76 @@
1
+ require 'yaml'
2
+
1
3
  class WSlaveSage
2
- def initialize(name, version)
4
+ attr_reader :theme_name
5
+
6
+ def initialize()
7
+ @theme_name = ''
8
+ end
9
+
10
+ def create(name)
3
11
  unless File.exist?("./config/.wslave")
4
12
  puts "This command must be run in the root of a WSlave setup"
5
13
  end
6
-
7
- `cd public/wp-content/themes && composer create-project roots/sage #{name} #{version}`
14
+
15
+ name = 'wslave-sage-theme' if name.empty?
16
+ project_root = Dir.pwd
17
+
18
+ puts "Creating Sage theme at public/wp-content/themes/#{name}"
19
+ `cd public/wp-content/themes && composer create-project roots/sage #{name} dev-master`
20
+
21
+ Dir.chdir project_root
22
+ _write_wslave_sage_config(name)
23
+ _overwrite_sage_webpack_browsersync_config
24
+ end
25
+
26
+ def update()
27
+ return unless _check()
28
+ system("cd public/wp-content/themes/#{@theme_name} && yarn && yarn build")
29
+ end
30
+
31
+ def dev()
32
+ return unless _check()
33
+ system("cd public/wp-content/themes/#{@theme_name} && yarn start")
34
+ end
35
+
36
+ def build()
37
+ return unless _check()
38
+ system("cd public/wp-content/themes/#{@theme_name} && yarn build")
39
+ end
40
+
41
+ def production()
42
+ return unless _check()
43
+ system("cd public/wp-content/themes/#{@theme_name} && yarn build:production")
44
+ end
45
+
46
+ def theme_name?()
47
+ return '' unless _check()
48
+ @theme_name
49
+ end
50
+
51
+ def _write_wslave_sage_config(name)
52
+ File.open("./config/sage.yml", 'w') {|f| YAML.dump({theme: name}, f)}
53
+ end
54
+
55
+ def _overwrite_sage_webpack_browsersync_config
56
+ return unless _check()
57
+ theme_info = YAML.load_file("./config/sage.yml")
58
+ Dir.chdir "#{Dir.pwd}/public/wp-content/themes/#{theme_info[:theme]}"
59
+
60
+ webpack_config_path = './webpack.mix.js'
61
+ new_webpack_config = File.read(webpack_config_path).gsub(
62
+ /browserSync\('sage.test'\)/, "browserSync('localhost:8000')"
63
+ )
64
+ File.open(webpack_config_path, 'w') { |f| f.puts new_webpack_config }
65
+ end
66
+
67
+ def _check()
68
+ if (File.exist?("./config/.wslave") && File.exist?("./config/sage.yml"))
69
+ theme_info = YAML.load_file("./config/sage.yml")
70
+ @theme_name = theme_info[:theme]
71
+ return true
72
+ end
73
+ puts "This does not appear to be the root of a WSlave managed app with a Sage theme."
74
+ false
8
75
  end
9
76
  end
@@ -3,7 +3,6 @@ require 'fileutils'
3
3
  class WSlaveTools
4
4
  def self.wslave_root?()
5
5
  return true if (File.exist?("./config/.wslave") &&
6
- File.exist?("Dockerfile") &&
7
6
  File.exist?("docker-compose.yml"))
8
7
  puts "This does not appear to be the root of a WSlave managed app."
9
8
  puts "Run command again from the root directory of a WSlave app."
@@ -9,7 +9,7 @@ class WSlaveUpdate
9
9
  path = Dir.pwd
10
10
  if !File.exist?("#{path}/config/.wslave")
11
11
  puts "!!!This command must be run in a WSlave generated project!!!"
12
- return
12
+ return
13
13
  end
14
14
 
15
15
  base_path = File.expand_path "#{__dir__}/../base/"
@@ -21,7 +21,7 @@ class WSlaveUpdate
21
21
  FileUtils.cp("#{base_path}/Capfile", "#{path}/Capfile")
22
22
  # FileUtils.cp("#{base_path}/Gemfile", "#{path}/Gemfile")
23
23
  FileUtils.cp("#{base_path}/Rakefile", "#{path}/Rakefile")
24
- FileUtils.cp("#{base_path}/Dockerfile", "#{path}/Dockerfile")
24
+ FileUtils.cp_r("#{base_path}/docker", "#{path}/")
25
25
  FileUtils.cp("#{base_path}/docker-compose.yml", "#{path}/docker-compose.yml")
26
26
  FileUtils.cp("#{base_path}/public/.htaccess", "#{path}/public/.htaccess")
27
27
  FileUtils.cp_r(Dir.glob("#{base_path}/config/*"), "#{path}/config")
@@ -1,5 +1,7 @@
1
1
  deployer:
2
- user:
2
+ user:
3
+ # Uncomment this line if you are not on a shared host/if your web server runs under a different user than what you specified in the user field above
4
+ # www_data_group: www-data
3
5
  host:
4
6
  staging:
5
7
  production:
@@ -7,6 +9,9 @@ deployer:
7
9
  fqdn:
8
10
  staging:
9
11
  production:
12
+ branch:
13
+ staging: master
14
+ production: master
10
15
  app:
11
16
  name:
12
17
  repo:
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'wslave'
3
- s.version = '0.0.15'
3
+ s.version = '0.2.0'
4
4
  s.licenses = ['GPL-3.0', 'AGPL-3.0']
5
5
  s.summary = '"Word Slave" generates and controls a WordPress installation'
6
6
  s.description = 'Word Slave includes the wslave command and a control library to generate a ' \
@@ -20,10 +20,13 @@ Gem::Specification.new do |s|
20
20
  s.bindir = 'bin'
21
21
  s.executables << 'wslave'
22
22
 
23
- s.add_dependency 'capistrano', '= 3.10.0'
24
- s.add_dependency 'capistrano-git-with-submodules', '~> 2.0'
25
- s.add_dependency 'capistrano-scm-copy', '~> 0.7'
23
+ s.add_dependency 'capistrano', '= 3.14.1'
24
+ s.add_dependency 'capistrano-git-with-submodules', '~> 2.0', '2.0.4'
25
+ s.add_dependency 'capistrano-scm-copy', '~> 0.7', '0.7.0'
26
+ s.add_dependency 'capistrano-file-permissions', '~> 1.0', '1.0.0'
26
27
 
27
- s.add_dependency 'thor', '~> 0.20'
28
- s.add_dependency 'haikunator', '~> 1.1'
28
+ s.add_dependency 'git', '~> 1.7', '1.7.0'
29
+
30
+ s.add_dependency 'thor', '~> 1.0', '1.0.1'
31
+ s.add_dependency 'haikunator', '~> 1.1', '1.1.0'
29
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wslave
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rei Kagetsuki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-30 00:00:00.000000000 Z
11
+ date: 2020-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.10.0
19
+ version: 3.14.1
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: 3.10.0
26
+ version: 3.14.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: capistrano-git-with-submodules
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -31,6 +31,9 @@ dependencies:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '2.0'
34
+ - - '='
35
+ - !ruby/object:Gem::Version
36
+ version: 2.0.4
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,6 +41,9 @@ dependencies:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
43
  version: '2.0'
44
+ - - '='
45
+ - !ruby/object:Gem::Version
46
+ version: 2.0.4
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: capistrano-scm-copy
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -45,6 +51,9 @@ dependencies:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0.7'
54
+ - - '='
55
+ - !ruby/object:Gem::Version
56
+ version: 0.7.0
48
57
  type: :runtime
49
58
  prerelease: false
50
59
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,20 +61,69 @@ dependencies:
52
61
  - - "~>"
53
62
  - !ruby/object:Gem::Version
54
63
  version: '0.7'
64
+ - - '='
65
+ - !ruby/object:Gem::Version
66
+ version: 0.7.0
67
+ - !ruby/object:Gem::Dependency
68
+ name: capistrano-file-permissions
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '1.0'
74
+ - - '='
75
+ - !ruby/object:Gem::Version
76
+ version: 1.0.0
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '1.0'
84
+ - - '='
85
+ - !ruby/object:Gem::Version
86
+ version: 1.0.0
87
+ - !ruby/object:Gem::Dependency
88
+ name: git
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '1.7'
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 1.7.0
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.7'
104
+ - - '='
105
+ - !ruby/object:Gem::Version
106
+ version: 1.7.0
55
107
  - !ruby/object:Gem::Dependency
56
108
  name: thor
57
109
  requirement: !ruby/object:Gem::Requirement
58
110
  requirements:
59
111
  - - "~>"
60
112
  - !ruby/object:Gem::Version
61
- version: '0.20'
113
+ version: '1.0'
114
+ - - '='
115
+ - !ruby/object:Gem::Version
116
+ version: 1.0.1
62
117
  type: :runtime
63
118
  prerelease: false
64
119
  version_requirements: !ruby/object:Gem::Requirement
65
120
  requirements:
66
121
  - - "~>"
67
122
  - !ruby/object:Gem::Version
68
- version: '0.20'
123
+ version: '1.0'
124
+ - - '='
125
+ - !ruby/object:Gem::Version
126
+ version: 1.0.1
69
127
  - !ruby/object:Gem::Dependency
70
128
  name: haikunator
71
129
  requirement: !ruby/object:Gem::Requirement
@@ -73,6 +131,9 @@ dependencies:
73
131
  - - "~>"
74
132
  - !ruby/object:Gem::Version
75
133
  version: '1.1'
134
+ - - '='
135
+ - !ruby/object:Gem::Version
136
+ version: 1.1.0
76
137
  type: :runtime
77
138
  prerelease: false
78
139
  version_requirements: !ruby/object:Gem::Requirement
@@ -80,6 +141,9 @@ dependencies:
80
141
  - - "~>"
81
142
  - !ruby/object:Gem::Version
82
143
  version: '1.1'
144
+ - - '='
145
+ - !ruby/object:Gem::Version
146
+ version: 1.1.0
83
147
  description: Word Slave includes the wslave command and a control library to generate
84
148
  a "best practice" WordPress installation and includes a pre-rolled Docker setup
85
149
  for running a development server and a Capistrano setup for deployment.
@@ -89,18 +153,24 @@ executables:
89
153
  extensions: []
90
154
  extra_rdoc_files: []
91
155
  files:
156
+ - base/.gitignore
92
157
  - base/Capfile
93
- - base/Dockerfile
94
158
  - base/Gemfile
95
159
  - base/Rakefile
160
+ - base/config/deploy-tools/gen-nginx-vhost.rb
96
161
  - base/config/deploy-tools/gen-salts.rb
97
162
  - base/config/deploy-tools/gen-wp-config.rb
163
+ - base/config/deploy-tools/nginx.vhost.erb
98
164
  - base/config/deploy-tools/wp-config.php.erb
99
165
  - base/config/deploy-tools/wp-config.php.local
100
166
  - base/config/deploy.rb
101
167
  - base/config/deploy/production.rb
102
168
  - base/config/deploy/staging.rb
103
169
  - base/docker-compose.yml
170
+ - base/docker/apache/Dockerfile
171
+ - base/docker/nginx/Dockerfile
172
+ - base/docker/nginx/nginx.vhost
173
+ - base/docker/nginx/supervisord.conf
104
174
  - base/public/.htaccess
105
175
  - base/public/wp-config.php
106
176
  - bin/wslave
@@ -132,8 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
202
  - !ruby/object:Gem::Version
133
203
  version: '0'
134
204
  requirements: []
135
- rubyforge_project:
136
- rubygems_version: 2.6.14
205
+ rubygems_version: 3.1.2
137
206
  signing_key:
138
207
  specification_version: 4
139
208
  summary: '"Word Slave" generates and controls a WordPress installation'