grok_cli 1.2.1 → 1.3.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: ab26dded94f4bbc312351a675b23736297aadf84
4
- data.tar.gz: 967bbef9bd2f4b842143164bcafff7560be46207
3
+ metadata.gz: dc5b66177d79ae564395449f8c19bf677a6ef187
4
+ data.tar.gz: d7e1ac3ebc1442619971cba903b6eaa886b11cb3
5
5
  SHA512:
6
- metadata.gz: 4f0b0f069ab9f6ff1d58168df70e5a5428b2114ae4e4a12bc5f38a267e97a1bbd5195f69b960865dff7ceb3400a1f3d400f4cec598795eeb47fc7b787d8939d3
7
- data.tar.gz: acff9d4450d464f9daa380d9c571d0d020a41782443a1ba48f230fb9d5785b567a2e437707dd4a62af14f02105f0141921fb4f883df153f5493e6ba39cf923a8
6
+ metadata.gz: 33faf848f535d3007484b24b16b47cccce55444b2f6d774671decdbfee433968597d827f98e439f0b828d05f12911596e6e45cb14f519163ab0090866d3c83b1
7
+ data.tar.gz: 943bacbc9e7c238795e05cb3ac22c62a62c9935f7e5a99f01113a01e2bcaa84a0d8d4db9be7fdbfc68d4440c54118107b93d9328e8abaaf485475cdcdd26ee38
@@ -0,0 +1,31 @@
1
+ module GrokCLI::Docker::WordPress
2
+ class Down
3
+ def initialize(config = GrokCLI::Docker::Configuration.new)
4
+ @config = config
5
+ end
6
+
7
+ def execute
8
+ system <<~CMD
9
+
10
+ docker-machine create #{@config.machine_name} --driver virtualbox
11
+
12
+ eval "$(docker-machine env #{@config.machine_name})"
13
+
14
+ docker-compose down
15
+ CMD
16
+ end
17
+ end
18
+ end
19
+
20
+ module GrokCLI
21
+ command 'docker:wordpress' do |c|
22
+
23
+ c.desc 'Stop and remove all docker containers'
24
+
25
+ c.command 'setup' do |c|
26
+ c.action do
27
+ GrokCLI::Docker::WordPress::Down.new.execute
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,51 @@
1
+ module GrokCLI::Docker::WordPress
2
+ class ImportDatabase
3
+ def initialize(config = GrokCLI::Docker::Configuration.new)
4
+ @config = config
5
+ end
6
+
7
+ def execute(sql_dump)
8
+ system <<~CMD
9
+
10
+ docker-machine create #{@config.machine_name} --driver virtualbox
11
+
12
+ eval "$(docker-machine env #{@config.machine_name})"
13
+
14
+ docker-compose run --rm mysql mysql -h mysql -u#{username} -p#{password} #{database} < #{sql_dump}
15
+ CMD
16
+ end
17
+
18
+ private
19
+
20
+ def username
21
+ config.fetch('MYSQL_USER')
22
+ end
23
+
24
+ def password
25
+ config.fetch('MYSQL_PASSWORD')
26
+ end
27
+
28
+ def database
29
+ config.fetch('MYSQL_DATABASE')
30
+ end
31
+
32
+ def config
33
+ Hash[*File.read('.env').split(/[=|\n]+/)]
34
+ end
35
+ end
36
+ end
37
+
38
+ module GrokCLI
39
+ command 'docker:wordpress' do |c|
40
+
41
+ c.desc 'Import a database into the MySQL instance'
42
+
43
+ c.arg :sql_dump
44
+
45
+ c.command 'import_database' do |c|
46
+ c.action do |global_options, options, arguments|
47
+ GrokCLI::Docker::WordPress::ImportDatabase.new.execute(arguments[0])
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,73 @@
1
+ require 'erb'
2
+
3
+ module GrokCLI::Docker::WordPress
4
+ class Init
5
+ def execute(hostname, machine_name)
6
+ FileUtils.cp(template_path('docker-compose.yml'), '.')
7
+ puts "Created docker-compose.yml"
8
+
9
+ File.open('.grok-cli.yml', 'w') do |file|
10
+ file.write(render_grok_cli(hostname, machine_name))
11
+ puts "Created .grok-cli.yml"
12
+ end
13
+
14
+ File.open('.env', 'w') do |file|
15
+ file.write(render_env)
16
+ puts "Created .env"
17
+ end
18
+
19
+ File.open('wp-config.php', 'w') do |file|
20
+ file.write(render_wp_config)
21
+ puts "Created wp-config.php"
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def template_path(path)
28
+ Pathname.new(File.dirname(__FILE__)).join('./../../../templates/wordpress').join(path)
29
+ end
30
+
31
+ def render_grok_cli(hostname, machine_name)
32
+ @hostname = hostname
33
+ @machine_name = machine_name
34
+
35
+ template = File.read(template_path('.grok-cli.yml.erb'))
36
+
37
+ ERB.new(template).result(binding)
38
+ end
39
+
40
+ def render_env
41
+ @password = SecureRandom.hex
42
+
43
+ template = File.read(template_path('.env.erb'))
44
+
45
+ ERB.new(template).result(binding)
46
+ end
47
+
48
+ def render_wp_config
49
+ @password = SecureRandom.hex
50
+
51
+ template = File.read(template_path('wp-config.php.erb'))
52
+
53
+ ERB.new(template).result(binding)
54
+ end
55
+ end
56
+
57
+ end
58
+
59
+ module GrokCLI
60
+ command 'docker:wordpress' do |c|
61
+
62
+ c.desc 'Copy configuration files to a WordPress project'
63
+
64
+ c.arg :docker_machine_name
65
+ c.arg :hostname
66
+
67
+ c.command 'init' do |c|
68
+ c.action do |global_options, options, arguments|
69
+ GrokCLI::Docker::WordPress::Init.new.execute(arguments[0], arguments[1])
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,31 @@
1
+ module GrokCLI::Docker::WordPress
2
+ class Up
3
+ def initialize(config = GrokCLI::Docker::Configuration.new)
4
+ @config = config
5
+ end
6
+
7
+ def execute
8
+ system <<~CMD
9
+
10
+ docker-machine create #{@config.machine_name} --driver virtualbox
11
+
12
+ eval "$(docker-machine env #{@config.machine_name})"
13
+
14
+ docker-compose up
15
+ CMD
16
+ end
17
+ end
18
+ end
19
+
20
+ module GrokCLI
21
+ command 'docker:wordpress' do |c|
22
+
23
+ c.desc 'Start the container services'
24
+
25
+ c.command 'start' do |c|
26
+ c.action do
27
+ GrokCLI::Docker::WordPress::Up.new.execute
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,3 +1,4 @@
1
+ require 'pathname'
1
2
  require 'yaml'
2
3
 
3
4
  module GrokCLI
@@ -1,3 +1,3 @@
1
1
  module GrokCLI
2
- VERSION = "1.2.1"
2
+ VERSION = "1.3.0"
3
3
  end
@@ -0,0 +1,10 @@
1
+ MYSQL_DATABASE=wordpress
2
+ MYSQL_PASSWORD=<%= @password %>
3
+ MYSQL_ROOT_PASSWORD=password
4
+ MYSQL_USER=wordpress
5
+ PMA_HOST=mysql
6
+ PMA_PASSWORD=<%= @password %>
7
+ PMA_USER=wordpress
8
+ WORDPRESS_DB_DATABASE=wordpress
9
+ WORDPRESS_DB_PASSWORD=<%= @password %>
10
+ WORDPRESS_DB_USER=wordpress
@@ -0,0 +1,2 @@
1
+ machine_name: <%= @machine_name %>
2
+ hostname: <%= @hostname %>
@@ -0,0 +1,26 @@
1
+ version: '2'
2
+
3
+ services:
4
+ web:
5
+ image: wordpress
6
+ depends_on:
7
+ - mysql
8
+ - phpmyadmin
9
+ ports:
10
+ - "80:80"
11
+ volumes:
12
+ - .:/var/www/html
13
+ env_file:
14
+ .env
15
+ phpmyadmin:
16
+ image: phpmyadmin/phpmyadmin
17
+ ports:
18
+ - "8080:80"
19
+ depends_on:
20
+ - mysql
21
+ env_file:
22
+ .env
23
+ mysql:
24
+ image: mariadb
25
+ env_file:
26
+ .env
@@ -0,0 +1,31 @@
1
+ <?php
2
+
3
+ define('DB_NAME', getenv('MYSQL_DATABASE'));
4
+ define('DB_USER', getenv('MYSQL_USER'));
5
+ define('DB_PASSWORD', getenv('MYSQL_PASSWORD'));
6
+ define('DB_HOST', 'mysql');
7
+ define('DB_CHARSET', 'utf8');
8
+ define('DB_COLLATE', '');
9
+
10
+ define('AUTH_KEY', '<%= SecureRandom.hex %>');
11
+ define('SECURE_AUTH_KEY', '<%= SecureRandom.hex %>');
12
+ define('LOGGED_IN_KEY', '<%= SecureRandom.hex %>');
13
+ define('NONCE_KEY', '<%= SecureRandom.hex %>');
14
+ define('AUTH_SALT', '<%= SecureRandom.hex %>');
15
+ define('SECURE_AUTH_SALT', '<%= SecureRandom.hex %>');
16
+ define('LOGGED_IN_SALT', '<%= SecureRandom.hex %>');
17
+ define('NONCE_SALT', '<%= SecureRandom.hex %>');
18
+
19
+ $table_prefix = 'wp_';
20
+
21
+ define('WP_DEBUG', false);
22
+
23
+ if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
24
+ $_SERVER['HTTPS'] = 'on';
25
+ }
26
+
27
+ if ( !defined('ABSPATH') ) {
28
+ define('ABSPATH', dirname(__FILE__) . '/');
29
+ }
30
+
31
+ require_once(ABSPATH . 'wp-settings.php');
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grok_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Freeman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-16 00:00:00.000000000 Z
11
+ date: 2016-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -123,9 +123,17 @@ files:
123
123
  - lib/grok_cli/docker/start.rb
124
124
  - lib/grok_cli/docker/stop.rb
125
125
  - lib/grok_cli/docker/update_etc_hosts.rb
126
+ - lib/grok_cli/docker/wordpress/down.rb
127
+ - lib/grok_cli/docker/wordpress/import_database.rb
128
+ - lib/grok_cli/docker/wordpress/init.rb
129
+ - lib/grok_cli/docker/wordpress/up.rb
126
130
  - lib/grok_cli/git.rb
127
131
  - lib/grok_cli/git/log.rb
128
132
  - lib/grok_cli/version.rb
133
+ - lib/templates/wordpress/.env.erb
134
+ - lib/templates/wordpress/.grok-cli.yml.erb
135
+ - lib/templates/wordpress/docker-compose.yml
136
+ - lib/templates/wordpress/wp-config.php.erb
129
137
  homepage: https://github.com/GrokInteractive/grok_cli
130
138
  licenses:
131
139
  - MIT