theme-juice 0.19.5 → 0.20.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cbfecab588b74f964cb79a3de2742a200f314e78
4
- data.tar.gz: 9af699e7120a66a5325348750f05b530a2215616
3
+ metadata.gz: 7c9fca52d72a4f48aee8afea4a1bf79e910ab5b4
4
+ data.tar.gz: 556f6c6891375960ddb923ea494ef8b614ba8a87
5
5
  SHA512:
6
- metadata.gz: 58a08bbd9b4f2f299d00ab62a5a895f9732df9ed0f439322c322756a73dc5ae150d5c10b5e460491f6d568134d143f80560408323d8e1f005986f15e0ebdd43b
7
- data.tar.gz: c0282daee601b2e43dbee735079658143f7e105f5bc9069a7de7d96c6c25793d4f7f6d81fa1c501e29a6f539b9dbf041a0f7decda1dea25f2c431ad5d5b5aeef
6
+ metadata.gz: 3a9a77b68588a07545cc0c80d3bc6bedbd2fccf0326fa78212ecf73b24a9916bf21c074e250febc19b22b7950e4bb816a9a0620aa6c923689bb102645c542d31
7
+ data.tar.gz: 3766089d433880aaa037038019a367a0ac5719714ee3e11e500d6141d3f0354ff30dcf19943f6609788ab287adf240907d04251354367af86a80ad687f5a2781
data/lib/theme-juice.rb CHANGED
@@ -27,6 +27,7 @@ require "theme-juice/tasks/location"
27
27
  require "theme-juice/tasks/template"
28
28
  require "theme-juice/tasks/repo"
29
29
  require "theme-juice/tasks/dot_env"
30
+ require "theme-juice/tasks/wp_config"
30
31
  require "theme-juice/tasks/forward_ports"
31
32
  require "theme-juice/tasks/nginx"
32
33
  require "theme-juice/tasks/apache"
@@ -122,18 +122,22 @@ module ThemeJuice
122
122
  end
123
123
 
124
124
  desc "create", "Create new project"
125
- method_option :name, :type => :string, :aliases => "-n", :default => nil, :desc => ""
126
- method_option :location, :type => :string, :aliases => "-l", :default => nil, :desc => ""
127
- method_option :template, :type => :string, :aliases => "-t", :default => nil, :desc => ""
128
- method_option :url, :type => :string, :aliases => "-u", :default => nil, :desc => ""
129
- method_option :repository, :type => :string, :aliases => "-r", :desc => ""
130
- method_option :db_import, :type => :string, :aliases => %w[-i --import-db], :desc => ""
131
- method_option :bare, :type => :boolean, :aliases => %w[--no-template], :desc => ""
132
- method_option :skip_repo, :type => :boolean, :desc => ""
133
- method_option :skip_db, :type => :boolean, :desc => ""
134
- method_option :use_defaults, :type => :boolean, :desc => ""
135
- method_option :no_wp, :type => :boolean, :desc => ""
136
- method_option :no_db, :type => :boolean, :desc => ""
125
+ method_option :name, :type => :string, :aliases => "-n", :default => nil, :desc => ""
126
+ method_option :location, :type => :string, :aliases => "-l", :default => nil, :desc => ""
127
+ method_option :template, :type => :string, :aliases => "-t", :default => nil, :desc => ""
128
+ method_option :url, :type => :string, :aliases => "-u", :default => nil, :desc => ""
129
+ method_option :repository, :type => :string, :aliases => "-r", :desc => ""
130
+ method_option :db_import, :type => :string, :aliases => %w[-i --import-db], :desc => ""
131
+ method_option :bare, :type => :boolean, :aliases => %w[--no-template], :desc => ""
132
+ method_option :skip_repo, :type => :boolean, :desc => ""
133
+ method_option :skip_db, :type => :boolean, :desc => ""
134
+ method_option :use_defaults, :type => :boolean, :desc => ""
135
+ method_option :no_wp, :type => :boolean, :desc => ""
136
+ method_option :no_wp_cli, :type => :boolean, :aliases => %w[--no-wp-cli-config], :desc => ""
137
+ method_option :no_db, :type => :boolean, :desc => ""
138
+ method_option :no_env, :type => :boolean, :desc => ""
139
+ method_option :no_config, :type => :boolean, :aliases => %w[--no-juicefile], :desc => ""
140
+ method_option :wp_config_modify, :type => :boolean, :aliases => %w[--modify-wp-config], :desc => ""
137
141
  def create
138
142
  @io.hello
139
143
  @create.new(options).execute
@@ -30,7 +30,11 @@ module ThemeJuice
30
30
  else
31
31
  tasks << Tasks::Apache.new
32
32
  end
33
- tasks << Tasks::DotEnv.new
33
+ if @project.no_env
34
+ tasks << Tasks::WPConfig.new
35
+ else
36
+ tasks << Tasks::DotEnv.new
37
+ end
34
38
  tasks << Tasks::Landrush.new
35
39
  tasks << Tasks::ForwardPorts.new
36
40
  tasks << Tasks::SyncedFolder.new
@@ -46,23 +50,27 @@ module ThemeJuice
46
50
  private
47
51
 
48
52
  def init_project
49
- @project.use_defaults = @opts.fetch("use_defaults") { false }
50
- @project.bare = @opts.fetch("bare") { false }
51
- @project.skip_repo = @opts.fetch("skip_repo") { false }
52
- @project.skip_db = @opts.fetch("skip_db") { false }
53
- @project.no_wp = @opts.fetch("no_wp") { false }
54
- @project.no_db = @opts.fetch("no_db") { false }
55
- @project.name = @opts.fetch("name") { name }
56
- @project.location = @opts.fetch("location") { location }
57
- @project.url = @opts.fetch("url") { url }
58
- @project.xip_url = @opts.fetch("xip_url") { xip_url }
59
- @project.template = @opts.fetch("template") { template }
60
- @project.repository = @opts.fetch("repository") { repository }
61
- @project.db_host = @opts.fetch("db_host") { db_host }
62
- @project.db_name = @opts.fetch("db_name") { db_name }
63
- @project.db_user = @opts.fetch("db_user") { db_user }
64
- @project.db_pass = @opts.fetch("db_pass") { db_pass }
65
- @project.db_import = @opts.fetch("db_import") { db_import }
53
+ @project.use_defaults = @opts.fetch("use_defaults") { false }
54
+ @project.bare = @opts.fetch("bare") { false }
55
+ @project.skip_repo = @opts.fetch("skip_repo") { false }
56
+ @project.skip_db = @opts.fetch("skip_db") { false }
57
+ @project.no_wp = @opts.fetch("no_wp") { false }
58
+ @project.no_wp_cli = @opts.fetch("no_wp_cli") { false }
59
+ @project.no_db = @opts.fetch("no_db") { false }
60
+ @project.wp_config_modify = @opts.fetch("wp_config_modify") { false }
61
+ @project.no_config = @opts.fetch("no_config") { false }
62
+ @project.no_env = @opts.fetch("no_env") { @project.wp_config_modify }
63
+ @project.name = @opts.fetch("name") { name }
64
+ @project.location = @opts.fetch("location") { location }
65
+ @project.url = @opts.fetch("url") { url }
66
+ @project.xip_url = @opts.fetch("xip_url") { xip_url }
67
+ @project.template = @opts.fetch("template") { template }
68
+ @project.repository = @opts.fetch("repository") { repository }
69
+ @project.db_host = @opts.fetch("db_host") { db_host }
70
+ @project.db_name = @opts.fetch("db_name") { db_name }
71
+ @project.db_user = @opts.fetch("db_user") { db_user }
72
+ @project.db_pass = @opts.fetch("db_pass") { db_pass }
73
+ @project.db_import = @opts.fetch("db_import") { db_import }
66
74
  end
67
75
 
68
76
  def name
@@ -144,7 +152,11 @@ module ThemeJuice
144
152
  when /(theme-juice)/
145
153
  @io.say "Awesome choice!", :color => :green, :icon => :success
146
154
  when /(wordpress)/
147
- @io.say "This is a stock WordPress install, so things such as the '.env' file will not be set up. You'll need to input your database information manually after the setup.", {
155
+ @project.wp_config_modify = true
156
+ @project.no_config = true
157
+ @project.no_wp_cli = true
158
+ @project.no_env = true
159
+ @io.say "This is a stock WordPress install, so I'll go ahead and modify the 'wp-config' file for you.", {
148
160
  :color => :yellow, :icon => :notice }
149
161
  when /(other)/
150
162
  TEMPLATES[choice] = @io.ask "What is the repository URL of the starter template that you would like to clone?"
@@ -9,6 +9,8 @@ module ThemeJuice
9
9
  @config = nil
10
10
 
11
11
  def command(cmd, *args)
12
+ return if @project.no_config
13
+
12
14
  commands.fetch("#{cmd}") {
13
15
  @io.error "Command '#{cmd}' not found in config", NotImplementedError }
14
16
  .each { |c| run format_command(c, *args) }
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "TJ\-CREATE" "1" "December 2015" "" "Theme Juice Manual"
4
+ .TH "TJ\-CREATE" "1" "January 2016" "" "Theme Juice Manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBtj\-create\fR \- Create a new project
@@ -91,6 +91,22 @@ Skip all prompts and use default settings
91
91
  Project is not a wordpress(7) install
92
92
  .
93
93
  .TP
94
+ \fB\-\-no\-wp\-cli\fR, \fB\-\-no\-wp\-cli\-config\fR
95
+ Skip creating the local wp\-cli(1) config file
96
+ .
97
+ .TP
94
98
  \fB\-\-no\-db\fR
95
99
  Project does not need a database
100
+ .
101
+ .TP
102
+ \fB\-\-no\-env\fR
103
+ Project does not need a \fB\.env\fR file
104
+ .
105
+ .TP
106
+ \fB\-\-no\-config\fR, \fB\-\-no\-juicefile\fR
107
+ Project does not have a Juicefile(1) config
108
+ .
109
+ .TP
110
+ \fB\-\-modify\-wp\-config\fR, \fB\-\-wp\-config\-modify\fR
111
+ Modify \fBwp\-config\.php\fR file contents with project configuration (this flag automatically disables the \fB\.env\fR file when used)
96
112
 
@@ -73,10 +73,23 @@ GLOBAL OPTIONS
73
73
  --no-wp
74
74
  Project is not a wordpress(7) install
75
75
 
76
+ --no-wp-cli, --no-wp-cli-config
77
+ Skip creating the local wp-cli(1) config file
78
+
76
79
  --no-db
77
80
  Project does not need a database
78
81
 
82
+ --no-env
83
+ Project does not need a .env file
84
+
85
+ --no-config, --no-juicefile
86
+ Project does not have a Juicefile(1) config
87
+
88
+ --modify-wp-config, --wp-config-modify
89
+ Modify wp-config.php file contents with project configuration
90
+ (this flag automatically disables the .env file when used)
91
+
79
92
 
80
93
 
81
94
 
82
- December 2015 TJ-CREATE(1)
95
+ January 2016 TJ-CREATE(1)
@@ -25,7 +25,11 @@ module ThemeJuice
25
25
  attr_accessor :skip_db
26
26
  attr_accessor :use_defaults
27
27
  attr_accessor :no_wp
28
+ attr_accessor :no_wp_cli
28
29
  attr_accessor :no_db
30
+ attr_accessor :no_env
31
+ attr_accessor :no_config
32
+ attr_accessor :wp_config_modify
29
33
 
30
34
  def vm_root
31
35
  @vm_root ||= File.expand_path("#{Env.vm_path}/www")
@@ -9,7 +9,7 @@ module ThemeJuice
9
9
  end
10
10
 
11
11
  def execute
12
- return if @project.no_wp
12
+ return if @project.no_env || @project.no_wp
13
13
 
14
14
  create_dot_env_file
15
15
  end
@@ -27,7 +27,7 @@ module ThemeJuice
27
27
  end
28
28
 
29
29
  def create_wp_cli_file
30
- return if wp_cli_is_setup? || @project.no_wp
30
+ return if wp_cli_is_setup? || @project.no_wp_cli || @project.no_wp
31
31
 
32
32
  @io.log "Creating WP-CLI file"
33
33
  @util.create_file wp_cli_file, { :verbose => @env.verbose,
@@ -0,0 +1,79 @@
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class WPConfig < Task
6
+
7
+ def initialize(opts = {})
8
+ super
9
+
10
+ @using_wp_config_sample = false
11
+ end
12
+
13
+ def execute
14
+ return if !@project.wp_config_modify || @project.no_wp || @project.no_db
15
+
16
+ unless wp_config_is_setup?
17
+ @io.say "Could not find wp-config file to modify", {
18
+ :color => :yellow, :icon => :notice }
19
+
20
+ unless wp_config_sample_is_setup?
21
+ @io.error "Could not find a wp-config-sample file either. Are you sure one exists in the project directory?"
22
+ end
23
+
24
+ @util.create_file(wp_config_file, { :verbose => @env.verbose,
25
+ :capture => @env.quiet }) { File.read(wp_config_sample_file) }
26
+
27
+ @using_wp_config_sample = true
28
+ end
29
+
30
+ modify_wp_config_settings({
31
+ :db_name => "#{@project.db_name}",
32
+ :db_user => "#{@project.db_user}",
33
+ :db_password => "#{@project.db_pass}",
34
+ :db_host => "#{@project.db_host}",
35
+ :wp_debug => true
36
+ })
37
+ end
38
+
39
+ private
40
+
41
+ def wp_config_file
42
+ "#{@project.location}/wp-config.php"
43
+ end
44
+
45
+ def wp_config_is_setup?
46
+ File.exist? wp_config_file
47
+ end
48
+
49
+ def wp_config_sample_file
50
+ "#{@project.location}/wp-config-sample.php"
51
+ end
52
+
53
+ def wp_config_sample_is_setup?
54
+ File.exist? wp_config_sample_file
55
+ end
56
+
57
+ def modify_wp_config_settings(settings)
58
+ if @using_wp_config_sample
59
+ @io.log "Creating wp-config file from sample"
60
+ else
61
+ return unless @io.agree? "Do you want to modify your current wp-config settings?"
62
+ @io.log "Modifying wp-config file"
63
+ end
64
+
65
+ settings.each do |setting, value|
66
+ replacement = case value
67
+ when TrueClass, FalseClass
68
+ "define('#{setting.upcase}', #{value.to_s});"
69
+ else
70
+ "define('#{setting.upcase}', '#{value.to_s}');"
71
+ end
72
+
73
+ @util.gsub_file wp_config_file, /define\(\W*#{setting}\W*,\s*['"]{0,1}(.*?)['"]{0,1}\)\;/mi,
74
+ "#{replacement}", { :verbose => @env.verbose, :capture => @env.quiet }
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module ThemeJuice
4
- VERSION = "0.19.5"
4
+ VERSION = "0.20.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.19.5
4
+ version: 0.20.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: 2016-01-20 00:00:00.000000000 Z
11
+ date: 2016-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -209,6 +209,7 @@ files:
209
209
  - lib/theme-juice/tasks/vm_restart.rb
210
210
  - lib/theme-juice/tasks/vm_stage.rb
211
211
  - lib/theme-juice/tasks/wp_cli.rb
212
+ - lib/theme-juice/tasks/wp_config.rb
212
213
  - lib/theme-juice/util.rb
213
214
  - lib/theme-juice/version.rb
214
215
  homepage: http://themejuice.it