pave 0.2.2 → 0.3.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: 2dc8b7e8bd29f9a86f40372a62061ecc6f30133e
4
- data.tar.gz: a3bc9d455fa2566e22b376a389702fdf85a6c4e6
3
+ metadata.gz: dca6ce62e803a633172e15f128a10c1db7ddb46e
4
+ data.tar.gz: 6abf652c95be62aa92e2229c31299376a76c6aa1
5
5
  SHA512:
6
- metadata.gz: 92b868fff8511163232b3938f481f16b06f7dfabe715cf6246ed75a153fc5ea01dcbeccab1f5494dd419d56eb2e74a40b1df22c847487609fccbc34903a79d74
7
- data.tar.gz: f68e70453aedaf66569cea22f3f0784c3ed44b2a9e8a04eef64bbae9b45d563219818b0ac1bac8753c0b7640af65feaf776c15e3158e81fbffabaed36e68c302
6
+ metadata.gz: 99e429cd2172c75461de4812b0f614a29597d0d34b02c733a057877c5010e59e8b73a9b8e21f2d7d2515d906381068af99bd6fb4cbbc3ea017aa8531b6dae74b
7
+ data.tar.gz: 73b1a73e6e88ec5f22b81c16478a3b8b90ba98bed9d79cbc9119fbdb2e3183b42511d7e5f3bb370fa0e5b0a80dd32933fe12cf6f0c3828eb38bb7cddfc1356d1
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pave (0.1.0)
4
+ pave (0.2.3)
5
5
  commander (~> 4.1.5)
6
6
 
7
7
  GEM
data/bin/pave CHANGED
@@ -12,8 +12,8 @@ default_command :help
12
12
  command :new do |c|
13
13
  c.syntax = "pave new APP_PATH [options]"
14
14
  c.description = "Create a new Concrete5 project."
15
- c.action do |args, options|
16
- Pave::Concrete.create(args.first, options)
15
+ c.action do |args|
16
+ Pave::Concrete.create(args.first)
17
17
  end
18
18
  end
19
19
 
@@ -27,10 +27,10 @@ end
27
27
 
28
28
  command :setup do |c|
29
29
  c.syntax = "pave setup APP_PATH"
30
- c.description = "Setup app folder for project."
30
+ c.description = "Setup folders for project."
31
31
  c.action do |args|
32
- name = args.first || Dir.getwd
33
- Pave::Concrete.new(name).set_up_app_folder
32
+ name = args.first || Dir.pwd
33
+ Pave::Concrete.new(name).set_up_folders
34
34
  end
35
35
  end
36
36
  alias_command :"setup:app", :setup
@@ -39,17 +39,8 @@ command :"setup:git" do |c|
39
39
  c.syntax = "pave setup:git APP_PATH"
40
40
  c.description = "Setup git repo for project."
41
41
  c.action do |args|
42
- name = args.first || Dir.getwd
43
- Pave::Concrete.new(name).initialize_git
44
- end
45
- end
46
-
47
- command :"setup:symlinks" do |c|
48
- c.syntax = "pave setup:symlinks APP_PATH"
49
- c.description = "Setup app folder symlinks for project."
50
- c.action do |args|
51
- name = args.first || Dir.getwd
52
- Pave::Concrete.new(name).symlink_folders
42
+ name = args.first || Dir.pwd
43
+ Pave::Concrete.new(name).set_up_git
53
44
  end
54
45
  end
55
46
 
@@ -57,7 +48,7 @@ command :"setup:permissions" do |c|
57
48
  c.syntax = "pave setup:permissions APP_PATH"
58
49
  c.description = "Setup folder permissions for project."
59
50
  c.action do |args|
60
- name = args.first || Dir.getwd
51
+ name = args.first || Dir.pwd
61
52
  Pave::Concrete.new(name).modify_folder_permissions
62
53
  end
63
54
  end
@@ -67,7 +58,7 @@ command :"setup:clean" do |c|
67
58
  c.syntax = "pave setup:cleanup APP_PATH"
68
59
  c.description = "Remove unused folders from project."
69
60
  c.action do |args|
70
- name = args.first || Dir.getwd
61
+ name = args.first || Dir.pwd
71
62
  Pave::Concrete.new(name).remove_extra_folders
72
63
  end
73
64
  end
@@ -77,7 +68,8 @@ command :"virtualhost:create" do |c|
77
68
  c.syntax = "pave virtualhost:create VHOST"
78
69
  c.description = "Setup virtual host for Concrete5 project."
79
70
  c.action do |args|
80
- Pave::VirtualHost.new(args.first).create_vhost
71
+ host = args.first || "#{File.basename(Dir.pwd)}.site"
72
+ Pave::VirtualHost.new(host).create_vhost
81
73
  end
82
74
  end
83
75
  alias_command :"vh:create", :"virtualhost:create"
@@ -86,7 +78,8 @@ command :"virtualhost:remove" do |c|
86
78
  c.syntax = "pave virtualhost:remove VHOST"
87
79
  c.description = "Delete virtual host."
88
80
  c.action do |args|
89
- Pave::VirtualHost.new(args.first).remove_vhost
81
+ host = args.first || "#{File.basename(Dir.pwd)}.site"
82
+ Pave::VirtualHost.new(host).remove_vhost
90
83
  end
91
84
  end
92
85
  alias_command :"vh:remove", :"virtualhost:remove"
@@ -94,51 +87,53 @@ alias_command :"virtualhost:delete", :"virtualhost:remove"
94
87
  alias_command :"vh:delete", :"virtualhost:remove"
95
88
 
96
89
  command :"virtualhost:backup" do |c|
97
- c.syntax = "pave virtualhost:backup VHOST"
90
+ c.syntax = "pave virtualhost:backup"
98
91
  c.description = "Back up virtual hosts file. Restore with `pave virtualhost:restore`."
99
- c.action do |args|
100
- Pave::VirtualHost.new(args.first).backup_vhost
92
+ c.action do
93
+ Pave::VirtualHost.new("").backup_vhost
101
94
  end
102
95
  end
103
96
  alias_command :"vh:backup", :"virtualhost:backup"
104
97
 
105
98
  command :"virtualhost:restore" do |c|
106
- c.syntax = "pave virtualhost:restore VHOST"
99
+ c.syntax = "pave virtualhost:restore"
107
100
  c.description = "Restore previously backed up virtual hosts file."
108
- c.action do |args|
109
- Pave::VirtualHost.new(args.first).restore_vhost
101
+ c.action do
102
+ Pave::VirtualHost.new("").restore_vhost
110
103
  end
111
104
  end
112
105
  alias_command :"vh:restore", :"virtualhost:restore"
113
106
 
114
107
  command :"virtualhost:restart" do |c|
115
- c.syntax = "pave virtualhost:restart VHOST"
108
+ c.syntax = "pave virtualhost:restart"
116
109
  c.description = "Restarts apache."
117
- c.action do |args|
118
- Pave::VirtualHost.new.restart_apache
110
+ c.action do
111
+ Pave::VirtualHost.new("").restart_apache
119
112
  end
120
113
  end
121
114
  alias_command :"vh:restart", :"virtualhost:restart"
122
115
 
123
116
  command :"db:create" do |c|
124
- c.syntax = "pave db:create"
117
+ c.syntax = "pave db:create DATABASE"
125
118
  c.description = "Create the Concrete5 project's database."
126
119
  c.action do |args|
127
- say "`db:create` command not implemented yet."
120
+ name = args.first || "#{File.basename(Dir.pwd)}"
121
+ Pave::Database.create(name)
128
122
  end
129
123
  end
130
124
 
131
125
  command :"db:dump" do |c|
132
- c.syntax = "pave db:dump"
133
- c.description = "Create SQL dump of the Concrete5 project's database."
126
+ c.syntax = "pave db:dump DATABASE"
127
+ c.description = "Create SQL dump of the project's database."
134
128
  c.action do |args|
135
- say "`db:dump` command not implemented yet."
129
+ name = args.first || "#{File.basename(Dir.pwd)}"
130
+ Pave::Database.new(name).dump
136
131
  end
137
132
  end
138
133
 
139
134
  command :"db:download" do |c|
140
135
  c.syntax = "pave db:download"
141
- c.description = "Download the Concrete5 project's live database and replace local database."
136
+ c.description = "Download the project's live database and replace local database."
142
137
  c.action do |args|
143
138
  say "`db:download` command not implemented yet."
144
139
  end
@@ -146,7 +141,7 @@ end
146
141
 
147
142
  command :"db:upload" do |c|
148
143
  c.syntax = "pave db:upload"
149
- c.description = "Upload the Concrete5 project's local database and replace the live database."
144
+ c.description = "Upload the project's local database and replace the live database."
150
145
  c.action do |args|
151
146
  say "`db:upload` command not implemented yet."
152
147
  end
@@ -4,7 +4,7 @@ module Pave
4
4
 
5
5
  attr_accessor :name
6
6
 
7
- def self.create(name, options)
7
+ def self.create(name)
8
8
  say ""
9
9
  return say "Options should be given after the application name. For details run: `pave help`" unless name.size > 0
10
10
  say "Setting up Concrete5 in folder #{name}."
@@ -17,8 +17,8 @@ module Pave
17
17
 
18
18
  def setup
19
19
  clone_concrete5
20
- set_up_app_folder
21
- initialize_git
20
+ set_up_folders
21
+ set_up_git
22
22
  create_virtual_host
23
23
  self
24
24
  end
@@ -34,23 +34,20 @@ module Pave
34
34
  say "* Concrete5 downloaded and unzipped into ./#{name}."
35
35
  end
36
36
 
37
- def set_up_app_folder
37
+ def set_up_folders
38
38
  say "* Setting up folders..."
39
- sh "mkdir #{name}/app"
40
-
41
- symlink_folders
42
39
  remove_extra_folders
43
40
  modify_folder_permissions
44
41
  end
45
42
 
46
- def initialize_git
43
+ def set_up_git
47
44
  say "* Setting up git..."
48
45
  sh "touch #{name}/.gitignore"
49
46
  gitignored_folders.each{ |folder| sh "echo '#{folder}' >> #{name}/.gitignore" }
50
- symlinked_folders.each{ |folder| sh "touch #{name}/app/#{folder}.keep" }
47
+ gitkeep_folders.each{ |folder| sh "touch #{name}/#{folder}/.keep" }
51
48
  sh "touch #{name}/files/.keep"
52
49
  sh "touch #{name}/updates/.keep"
53
- sh "cd #{name} && git init && git add -A && git commit -m 'Initial'"
50
+ # sh "cd #{name} && git init && git add -A && git commit -m 'Initial'"
54
51
  end
55
52
 
56
53
  def gitignored_folders
@@ -64,39 +61,38 @@ module Pave
64
61
  ]
65
62
  end
66
63
 
67
- def sudo?
68
- `whoami` == "root"
69
- end
70
-
71
64
  def create_virtual_host
72
- if sudo?
73
- Pave::VirtualHost.new("#{name}.site").create_vhost
65
+ say "* Setting up virtual host..."
66
+ if Pave::VirtualHost.new("#{name}.site").create_vhost
67
+ say "Successfully setup virtual host #{name}.site."
74
68
  else
75
- say "Virtual host not set up. Run `sudo pave vh:create #{name}.site` to create it."
69
+ say "Virtual host not set up. Run `pave vh:create #{name}.site` to create it."
76
70
  end
77
71
  end
78
72
 
73
+ def in_project_dir?
74
+ File.basename(Dir.pwd) == name
75
+ end
76
+
79
77
  def modify_folder_permissions
80
- world_writable_folders.each do |folder|
81
- sh "chmod -R 777 #{folder}"
78
+ say "* Modifying folder permissions..."
79
+
80
+ successful = world_writable_folders.map do |folder|
81
+ sh "sudo chmod -R 777 #{in_project_dir? ? folder.to_s : name + '/' + folder.to_s}"
82
+ end.count{ |x| x != 0 } == 0
83
+
84
+ if successful
85
+ say "Successfully modified folder permissions."
86
+ else
87
+ say "Folder permissions not set up. Run `pave setup:permissions` to set them."
82
88
  end
83
89
  end
84
90
 
85
91
  def world_writable_folders
86
- [
87
- :config,
88
- :packages,
89
- :files
90
- ]
91
- end
92
-
93
- def symlink_folders
94
- symlinked_folders.each do |folder|
95
- sh "ln -s #{name}/#{folder} app/#{folder}"
96
- end
92
+ %w{ config packages files }
97
93
  end
98
94
 
99
- def symlinked_folders
95
+ def gitkeep_folders
100
96
  [
101
97
  :blocks,
102
98
  :elements,
@@ -4,6 +4,35 @@ module Pave
4
4
  class Database
5
5
  include Pave::Shell
6
6
 
7
+ attr_accessor :name
7
8
 
9
+ def self.create(name)
10
+ say ""
11
+ return say "Options should be given after the database name. For details run: `pave help`" unless name && name.size > 0
12
+ say "Creating mysql database: #{name}."
13
+ new(name).setup
14
+ end
15
+
16
+ def initialize(name)
17
+ @name = name
18
+ end
19
+
20
+ def setup
21
+ sh "mysql -uroot -e 'CREATE DATABASE #{name}'"
22
+ end
23
+
24
+ def dump
25
+ say "Creating dump of #{name} at #{Dir.pwd}/#{Time.now.strftime("%Y-%m-%d")}-#{name}.sql.gz"
26
+ sh "mysqldump -uroot #{name} | gzip > #{Time.now.strftime("%Y-%m-%d")}-#{name}.sql.gz"
27
+ end
28
+
29
+ def download(host, user, password)
30
+ # Download the project's live database and replace local database.
31
+ # sh "mysqldump -h#{host} -u#{user} -p#{password} #{name} | mysql -uroot #{name}"
32
+ end
33
+
34
+ def upload
35
+ # Upload the project's local database and replace the live database.
36
+ end
8
37
  end
9
38
  end
@@ -1,3 +1,3 @@
1
1
  module Pave
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -11,17 +11,10 @@ module Pave
11
11
  @hostname = host
12
12
  end
13
13
 
14
- def create_vhost
15
- return say "No virtual host backup found. Run `pave vh:backup` before adding a virtual host." unless check_backup
16
- return say "No host name provided. Run `pave help` for more details." unless hostname.size > 0
17
-
18
- add_vhost_to_conf && add_hosts_entry && restart_apache && say("Created virtual host for #{hostname}.")
19
- end
20
-
21
- def remove_vhost
22
- return say "No virtual host backup found. Run `pave vh:backup` before adding a virtual host." unless check_backup
23
-
24
- remove_vhost_from_conf && remove_hosts_entry && restart_apache && say("Removed virtual host for #{hostname}.")
14
+ def restart_apache
15
+ `sudo apachectl restart`
16
+ say "Apache restarted."
17
+ true
25
18
  end
26
19
 
27
20
  def backup_vhost
@@ -46,10 +39,17 @@ module Pave
46
39
  say "Restored vhosts conf and host file."
47
40
  end
48
41
 
49
- def restart_apache
50
- code = sh "sudo apachectl restart"
51
- say "Apache restarted."
52
- true
42
+ def create_vhost
43
+ return say "No virtual host backup found. Run `pave vh:backup` before adding a virtual host." unless check_backup
44
+ return say "No host name provided. Run `pave help` for more details." unless hostname.size > 0
45
+
46
+ add_vhost_to_conf && add_hosts_entry && restart_apache && say("Created virtual host for #{hostname}.")
47
+ end
48
+
49
+ def remove_vhost
50
+ return say "No virtual host backup found. Run `pave vh:backup` before adding a virtual host." unless check_backup
51
+
52
+ remove_vhost_from_conf && remove_hosts_entry && restart_apache && say("Removed virtual host for #{hostname}.")
53
53
  end
54
54
 
55
55
  private
@@ -121,7 +121,7 @@ module Pave
121
121
  end
122
122
 
123
123
  def project_folder
124
- Dir.getwd
124
+ Dir.pwd
125
125
  end
126
126
 
127
127
  def vhosts_file_array
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pave
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamon Holmgren
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-22 00:00:00.000000000 Z
12
+ date: 2013-12-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -126,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
126
  version: '0'
127
127
  requirements: []
128
128
  rubyforge_project:
129
- rubygems_version: 2.0.3
129
+ rubygems_version: 2.0.14
130
130
  signing_key:
131
131
  specification_version: 4
132
132
  summary: Provides a set of command line tools for Concrete5.