theme-juice 0.19.5 → 0.20.0

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