pave 0.0.12 → 0.2.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: 248813ac450e9416c10a10cd50097ece53204bbe
4
- data.tar.gz: e677f3a0fe7eb079f9496744fb99408ff90f3ac8
3
+ metadata.gz: f856d10abc2ef812268cfd9838876e5b3392107d
4
+ data.tar.gz: e51a2f195e69ffb54a0bcde8a229b030200ba74a
5
5
  SHA512:
6
- metadata.gz: c5411777c0e40dc303691c187f3c35510f460b565b6f955a6978fe24e154ed453ac84f39d7d9e27985be0cbd0194f20fcb3f7fc5308c75b86c6b7aad34b375dc
7
- data.tar.gz: 70ab46a119b05a1e4a51b872b766a4e7c17f254bdf577d53d0b99489cd2ea5062dcbea3592c70f2fa01b048ab061e8ae95bc3c65f12870204dd577b109881fb3
6
+ metadata.gz: 4320ecbf4630da42f381aee1e4a2cf9830e4f5c6580f50a214c09dd32666675aaf79e6d197401b4b4648cb392ac64818b35ead685efcb1488de459c01a70a1f8
7
+ data.tar.gz: 8d27581e28f41771480801e18d318d35d85ff905809a501dfe3bbbe7546d03842d4df0d90f4d8a899cd785f3d82f212cfcbb5e23b6af2372829d781058080b96
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-2.0.0
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
  ruby "2.0.0"
3
3
  #ruby-gemset=pave
4
4
 
data/Gemfile.lock CHANGED
@@ -1,15 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pave (0.0.2)
5
- methadone (~> 1.3.0)
4
+ pave (0.1.0)
5
+ commander (~> 4.1.5)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ commander (4.1.5)
11
+ highline (~> 1.6.11)
12
+ highline (1.6.20)
10
13
  json (1.8.0)
11
- methadone (1.3.0)
12
- bundler
13
14
  rake (0.9.6)
14
15
  rdoc (4.0.1)
15
16
  json (~> 1.4)
data/README.md CHANGED
@@ -10,34 +10,32 @@ Provides a set of command line tools for Concrete5.
10
10
 
11
11
  ## Usage
12
12
 
13
+ Create a new Concrete5 website:
14
+
13
15
  $ pave new mywebsite
14
16
 
17
+ This:
18
+
15
19
  1. Downloads Concrete 5.6.2.1
16
20
  2. Unzips it into `mywebsite`
17
21
  3. Removes extra folders
18
22
  4. Builds an app folder of commonly used folders (symlinked into the root folder so Concrete5 can find them)
19
23
  5. Initializes a Git repo and adds the first ("Initial") commit.
20
24
 
21
- $ pave update
22
-
23
- Updates pave to the latest version.
25
+ Other commands:
24
26
 
25
- $ pave version
26
-
27
- Outputs the current version.
27
+ $ pave --help
28
+
29
+ Outputs common tasks that pave can do.
28
30
 
29
31
  ## TODO
30
32
 
31
- 1. Set up virtual host (`pave virtualhost mywebsite.dev`)
32
- 2. ? Create database (`pave database mydatabase`)
33
- 3. Tell user to go set up Concrete5 in-browser once virtual host and db is set up
34
- 4. Uninstall? `pave remove mywebsite` (including virtual host)
35
- 5. Just remove virtual host? `pave rmvirtualhost mywebsite.dev`
36
- 6. Do database dumps. `pave db dump`
37
- 7. Do live database download & replace local one. `pave db download` (confirmation first)
38
- 8. Do local database upload & replace remote one. `pave db upload` (confirmation first)
39
- 9.
40
-
33
+ 1. ? Create database (`pave database mydatabase`)
34
+ 1. Tell user to go set up Concrete5 in-browser once virtual host and db is set up
35
+ 1. Uninstall? `pave remove mywebsite` (including virtual host)
36
+ 1. Do database dumps. `pave db dump`
37
+ 1. Do live database download & replace local one. `pave db download` (confirmation first)
38
+ 1. Do local database upload & replace remote one. `pave db upload` (confirmation first)
41
39
 
42
40
 
43
41
  ## Contributing
data/Rakefile CHANGED
@@ -23,15 +23,15 @@ def dump_load_path
23
23
  puts "Found in #{path}"
24
24
  end
25
25
  end
26
- require 'bundler'
27
- require 'rake/clean'
26
+ require "bundler"
27
+ require "rake/clean"
28
28
 
29
- require 'rake/testtask'
29
+ require "rake/testtask"
30
30
 
31
- require 'cucumber'
32
- require 'cucumber/rake/task'
33
- gem 'rdoc' # we need the installed RDoc gem, not the system one
34
- require 'rdoc/task'
31
+ require "cucumber"
32
+ require "cucumber/rake/task"
33
+ gem "rdoc" # we need the installed RDoc gem, not the system one
34
+ require "rdoc/task"
35
35
 
36
36
  include Rake::DSL
37
37
 
@@ -39,13 +39,13 @@ Bundler::GemHelper.install_tasks
39
39
 
40
40
 
41
41
  Rake::TestTask.new do |t|
42
- t.pattern = 'test/tc_*.rb'
42
+ t.pattern = "test/tc_*.rb"
43
43
  end
44
44
 
45
45
  Rake::RDocTask.new do |rd|
46
-
46
+
47
47
  rd.main = "README.rdoc"
48
-
48
+
49
49
  rd.rdoc_files.include("lib/**/*.rb","bin/**/*")
50
50
  end
51
51
 
data/bin/pave CHANGED
@@ -1,94 +1,104 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'optparse'
4
- require 'methadone'
5
- require 'pave.rb'
3
+ require "pave.rb"
6
4
 
7
- class App
8
- include Methadone::Main
9
- include Methadone::CLILogging
10
- include Methadone::SH
5
+ program :name, "Pave"
6
+ program :version, Pave::VERSION
7
+ program :description, "Provides a set of command line tools for Concrete5."
8
+ program :help, "Authors", "Jamon Holmgren <jamon@clearsightstudio.com>, Ryan Linton <ryanl@clearsightstudio.com>"
11
9
 
12
- main do |command, opt| # Add args you want: |like,so|
13
- # your program code here
14
- # You can access CLI options via
15
- # the options Hash
16
- case command.to_sym
17
- when :new then Pave::Concrete.create(opt)
18
- when :update then update_gem
19
- when :help then show_help
20
- when :virtualhost then info "`virtualhost` command not implemented yet."
21
- when :dbcreate then info "`dbcreate` command not implemented yet."
22
- when :db then info "`db` command not implemented yet."
23
- when :version then info "pave version #{Pave::VERSION} - by Jamon Holmgren"
24
- else show_help
25
- end
10
+ default_command :help
26
11
 
27
- 0 # Good!
12
+ command :new do |c|
13
+ c.syntax = "pave new APP_PATH [options]"
14
+ c.description = "Create a new Concrete5 project."
15
+ c.action do |args, options|
16
+ Pave::Concrete.create(args.first, options)
28
17
  end
18
+ end
29
19
 
30
- def self.update_gem
31
- info "Updating pave..."
32
- sh "gem update pave"
33
- info "Updated."
20
+ command :update do |c|
21
+ c.syntax = "pave update"
22
+ c.description = "Update pave to the latest version."
23
+ c.action do
24
+ Pave.update
34
25
  end
26
+ end
35
27
 
36
- def self.show_help
37
- info "pave - Command line tools for Concrete5."
38
- info "By Jamon Holmgren"
39
- info ""
40
- info "Commands:"
41
- info " new <websitename>"
42
- info " Downloads and configures a new Concrete5 website."
43
- info " update"
44
- info " Updates the pave gem to the latest version."
45
- info ""
46
- info "Future commands (not implemented yet):"
47
- info " virtualhost <domain>"
48
- info " Sets up a new virtualhost on Apache, pointing to the current folder."
49
- info " dbcreate <dbname>"
50
- info " Sets up a new database on the local MySQL instance."
51
- info " db dump"
52
- info " Dumps the current database to a local file."
53
- info " db download"
54
- info " Downloads the remote database and replaces the local database with it."
55
- info " db upload"
56
- info " Uploads the local database to the remote one, replacing what's there."
28
+ command :"virtualhost:create" do |c|
29
+ c.syntax = "pave virtualhost:create VHOST"
30
+ c.description = "Setup virtual host for Concrete5 project."
31
+ c.action do |args|
32
+ Pave::VirtualHost.new(args.first).create_vhost
57
33
  end
34
+ end
35
+ alias_command :"vh:create", :"virtualhost:create"
58
36
 
59
- def self.create(name)
60
- info "pave - Command line tools for Concrete5."
61
- info "By Jamon Holmgren"
62
- info ""
63
- info "Creating #{name}..."
64
- sleep 2
65
- info "Done."
37
+ command :"virtualhost:remove" do |c|
38
+ c.syntax = "pave virtualhost:remove VHOST"
39
+ c.description = "Delete virtual host."
40
+ c.action do |args|
41
+ Pave::VirtualHost.new(args.first).remove_vhost
66
42
  end
43
+ end
44
+ alias_command :"vh:remove", :"virtualhost:remove"
45
+ alias_command :"virtualhost:delete", :"virtualhost:remove"
46
+ alias_command :"vh:delete", :"virtualhost:remove"
67
47
 
68
- # supplemental methods here
48
+ command :"virtualhost:backup" do |c|
49
+ c.syntax = "pave virtualhost:backup VHOST"
50
+ c.description = "Back up virtual hosts file. Restore with `pave virtualhost:restore`."
51
+ c.action do |args|
52
+ Pave::VirtualHost.new(args.first).backup_vhost
53
+ end
54
+ end
55
+ alias_command :"vh:backup", :"virtualhost:backup"
56
+
57
+ command :"virtualhost:restore" do |c|
58
+ c.syntax = "pave virtualhost:restore VHOST"
59
+ c.description = "Restore previously backed up virtual hosts file."
60
+ c.action do |args|
61
+ Pave::VirtualHost.new(args.first).restore_vhost
62
+ end
63
+ end
64
+ alias_command :"vh:restore", :"virtualhost:restore"
69
65
 
70
- # Declare command-line interface here
66
+ command :"virtualhost:restart" do |c|
67
+ c.syntax = "pave virtualhost:restart VHOST"
68
+ c.description = "Restarts apache."
69
+ c.action do |args|
70
+ Pave::VirtualHost.new.restart_apache
71
+ end
72
+ end
71
73
 
72
- description "Command line for Concrete5 websites."
73
- #
74
- # Accept flags via:
75
- # on("--flag VAL","Some flag")
76
- # options[flag] will contain VAL
77
- #
78
- # Specify switches via:
79
- # on("--[no-]switch","Some switch")
80
- #
81
- # Or, just call OptionParser methods on opts
82
- #
83
- # Require an argument
84
- arg :command
85
- #
86
- # # Make an argument optional
87
- arg :opt, :optional
74
+ command :"db:create" do |c|
75
+ c.syntax = "pave db:create"
76
+ c.description = "Create the Concrete5 project's database."
77
+ c.action do |args|
78
+ say "`db:create` command not implemented yet."
79
+ end
80
+ end
88
81
 
89
- version Pave::VERSION
82
+ command :"db:dump" do |c|
83
+ c.syntax = "pave db:dump"
84
+ c.description = "Create SQL dump of the Concrete5 project's database."
85
+ c.action do |args|
86
+ say "`db:dump` command not implemented yet."
87
+ end
88
+ end
90
89
 
91
- use_log_level_option
90
+ command :"db:download" do |c|
91
+ c.syntax = "pave db:download"
92
+ c.description = "Download the Concrete5 project's live database and replace local database."
93
+ c.action do |args|
94
+ say "`db:download` command not implemented yet."
95
+ end
96
+ end
92
97
 
93
- go!
98
+ command :"db:upload" do |c|
99
+ c.syntax = "pave db:upload"
100
+ c.description = "Upload the Concrete5 project's local database and replace the live database."
101
+ c.action do |args|
102
+ say "`db:upload` command not implemented yet."
103
+ end
94
104
  end
@@ -0,0 +1,96 @@
1
+ module Pave
2
+ class Concrete
3
+ include Pave::Shell
4
+
5
+ attr_accessor :name
6
+
7
+ def self.create(name, options)
8
+ say ""
9
+ say "Setting up Concrete5 in folder #{name}."
10
+ new(name).setup
11
+ end
12
+
13
+ def initialize(name)
14
+ @name = name
15
+ end
16
+
17
+ def setup
18
+ clone_concrete5
19
+ set_up_app_folder
20
+ initialize_git
21
+ create_virtual_host
22
+ self
23
+ end
24
+
25
+ def clone_concrete5
26
+ say "* Downloading Concrete5 version 5.6.2.1..."
27
+ sh "curl http://www.concrete5.org/download_file/-/view/58379/8497 -o c5.zip > /dev/null"
28
+ say ""
29
+ say "* Unzipping..."
30
+ sh "unzip c5.zip"
31
+ sh "rm c5.zip"
32
+ sh "mv concrete5.6.2.1 #{name}"
33
+ say "* Concrete5 downloaded and unzipped into ./#{name}."
34
+ end
35
+
36
+ def set_up_app_folder
37
+ say "* Setting up folders..."
38
+ sh "mkdir #{name}/app"
39
+
40
+ symlink_folders
41
+ remove_extra_folders
42
+ end
43
+
44
+ def initialize_git
45
+ say "* Setting up git..."
46
+ sh "echo 'files/cache/*' > #{name}/.gitignore"
47
+ sh "echo 'files/tmp/*' >> #{name}/.gitignore"
48
+ sh "cd #{name} && git init && git add -A && git commit -m 'Initial'"
49
+ end
50
+
51
+ def create_virtual_host
52
+ # /private/etc/apache2/extra/httpd-vhosts.conf
53
+ # <VirtualHost *:80>
54
+ # ServerName "mywebsite.site"
55
+ # DocumentRoot "<pwd>/mywebsite.dev"
56
+ # </VirtualHost>
57
+ end
58
+
59
+ def symlink_folders
60
+ symlinked_folders.each do |folder|
61
+ sh "mv #{name}/#{folder} #{name}/app/#{folder}"
62
+ sh "ln -s app/#{folder} #{name}/#{folder}"
63
+ end
64
+ end
65
+
66
+ def symlinked_folders
67
+ [
68
+ :blocks,
69
+ :elements,
70
+ :jobs,
71
+ :page_types,
72
+ :single_pages,
73
+ :themes,
74
+ :packages,
75
+ ]
76
+ end
77
+
78
+ def remove_extra_folders
79
+ sh "rmdir #{name}/" + removed_folders.join(" #{name}/")
80
+ end
81
+
82
+ def removed_folders
83
+ [
84
+ :tools,
85
+ :libraries,
86
+ :models,
87
+ :css,
88
+ :controllers,
89
+ :helpers,
90
+ :js,
91
+ :languages,
92
+ :mail,
93
+ ]
94
+ end
95
+ end
96
+ end
data/lib/pave/shell.rb ADDED
@@ -0,0 +1,14 @@
1
+ module Pave
2
+ module Shell
3
+ def shell(command)
4
+ output = `#{command}`
5
+ Struct.new(:status, :output).new($?, output)
6
+ end
7
+
8
+ def sh(command)
9
+ result = shell(command)
10
+ puts result.output
11
+ result.status
12
+ end
13
+ end
14
+ end
data/lib/pave/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pave
2
- VERSION = "0.0.12"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,170 @@
1
+ require "pave/shell"
2
+ require "fileutils"
3
+
4
+ module Pave
5
+ class VirtualHost
6
+ include Pave::Shell
7
+
8
+ attr_accessor :hostname
9
+
10
+ def initialize(host)
11
+ @hostname = host
12
+ end
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
+
17
+ add_vhost_to_conf && add_hosts_entry && restart_apache && say("Created virtual host for #{hostname}.")
18
+ end
19
+
20
+ def remove_vhost
21
+ return say "No virtual host backup found. Run `pave vh:backup` before adding a virtual host." unless check_backup
22
+
23
+ remove_vhost_from_conf && remove_hosts_entry && restart_apache && say("Removed virtual host for #{hostname}.")
24
+ end
25
+
26
+ def backup_vhost
27
+ File.delete(vhosts_conf_file_backup) if File.exist?(vhosts_conf_file_backup)
28
+ FileUtils.cp vhosts_conf_file, vhosts_conf_file_backup
29
+ File.delete(hosts_file_backup) if File.exist?(hosts_file_backup)
30
+ FileUtils.cp hosts_file, hosts_file_backup
31
+ say "Backed up vhosts conf and hosts file. Use `pave vh:restore` to restore them."
32
+ end
33
+
34
+ def restore_vhost
35
+ return say "Couldn't find vhosts backup." unless File.exist?(vhosts_conf_file_backup)
36
+ File.delete(vhosts_conf_file)
37
+ FileUtils.cp vhosts_conf_file_backup, vhosts_conf_file
38
+
39
+ return say "Couldn't find host file backup." unless File.exist?(hosts_file_backup)
40
+ File.delete(hosts_file)
41
+ FileUtils.cp hosts_file_backup, hosts_file
42
+
43
+ restart_apache
44
+
45
+ say "Restored vhosts conf and host file."
46
+ end
47
+
48
+ def restart_apache
49
+ code = sh "sudo apachectl restart"
50
+ say "Apache restarted."
51
+ true
52
+ end
53
+
54
+ private
55
+
56
+ def add_hosts_entry
57
+ File.open(hosts_file, "a") do |f|
58
+ f.puts "127.0.0.1 #{hostname}"
59
+ f.puts "fe80::1%lo0 #{hostname}"
60
+ end
61
+ true
62
+ end
63
+
64
+ def remove_hosts_entry
65
+ host_array = hosts_file_array.map do |line|
66
+ if line.include?("127.0.0.1 #{hostname}") || line.include?("fe80::1%lo0 #{hostname}")
67
+ nil
68
+ else
69
+ line
70
+ end
71
+ end
72
+
73
+ File.open(hosts_file, "w") do |f|
74
+ f.puts host_array.compact.join("\n")
75
+ end
76
+ true
77
+ end
78
+
79
+ def add_vhost_to_conf
80
+ File.open(vhosts_conf_file, "a") do |f|
81
+ f.puts virtual_host_entry
82
+ end
83
+ true
84
+ end
85
+
86
+ def remove_vhost_from_conf
87
+ vhost_array = vhosts_file_array
88
+ vhost_line = vhost_array.index { |l| l.include?("ServerName \"#{hostname}\"") }
89
+ if vhost_line
90
+ # Sanity check
91
+ return say("Error: vhost appears malformed. Couldn't find \"<Directory\" on line #{vhost_line + 2}") unless vhost_array[vhost_line - 6].include?("<Directory")
92
+ return say("Error: vhost appears malformed. Couldn't find \"</VirtualHost>\" on line #{vhost_line + 2}") unless vhost_array[vhost_line + 2].include?("</VirtualHost")
93
+
94
+ # Set all those lines to nil (so we can compact them later)
95
+ ((vhost_line - 6)..(vhost_line + 3)).each {|i| vhost_array[i] = nil }
96
+ File.open(vhosts_conf_file, "w") do |f|
97
+ f.puts vhost_array.compact.join("\n")
98
+ end
99
+ true
100
+ else
101
+ say "Didn't find #{hostname} in the vhost file."
102
+ false
103
+ end
104
+ end
105
+
106
+ def check_backup
107
+ File.exist?(vhosts_conf_file_backup)
108
+ end
109
+
110
+ def virtual_host_entry
111
+ "\n<Directory \"#{project_folder}\">\n" <<
112
+ " Allow From All\n" <<
113
+ " AllowOverride All\n" <<
114
+ " Options +Indexes\n" <<
115
+ "</Directory>\n" <<
116
+ "<VirtualHost *:80>\n" <<
117
+ " ServerName \"#{hostname}\"\n" <<
118
+ " DocumentRoot \"#{project_folder}\"\n" <<
119
+ "</VirtualHost>\n"
120
+ end
121
+
122
+ def project_folder
123
+ Dir.getwd
124
+ end
125
+
126
+ def vhosts_file_array
127
+ File.open(vhosts_conf_file).map {|l| l.rstrip}
128
+ end
129
+
130
+ def hosts_file_array
131
+ File.open(hosts_file).map {|l| l.rstrip}
132
+ end
133
+
134
+ def vhosts_conf_file
135
+ "/etc/apache2/extra/httpd-vhosts.conf"
136
+ end
137
+
138
+ def vhosts_conf_file_backup
139
+ vhosts_conf_file + ".backup"
140
+ end
141
+
142
+ def hosts_file
143
+ "/etc/hosts"
144
+ end
145
+
146
+ def hosts_file_backup
147
+ hosts_file + ".backup"
148
+ end
149
+
150
+ end
151
+ end
152
+
153
+
154
+ # /etc/apache2/extra/httpd-vhosts.conf
155
+ # <Directory "/Users/jh/Code/Web/fishalaskamagazine.dev/">
156
+ # Allow From All
157
+ # AllowOverride All
158
+ # Options +Indexes
159
+ # </Directory>
160
+ # <VirtualHost *:80>
161
+ # ServerName "fishalaskamag.site"
162
+ # DocumentRoot "/Users/jh/Code/Web/fishalaskamagazine.dev"
163
+ # </VirtualHost>
164
+
165
+ # Update hosts file with IP
166
+ # sudo apachectl restart
167
+
168
+
169
+
170
+
data/lib/pave.rb CHANGED
@@ -1,99 +1,14 @@
1
+ require "commander/import"
1
2
  require "pave/version"
3
+ require "pave/shell"
4
+ require "pave/concrete"
5
+ require "pave/virtual_host"
2
6
 
3
7
  module Pave
4
- class Concrete
5
- include Methadone::CLILogging
6
- include Methadone::SH
7
-
8
- attr_accessor :name
9
-
10
- def self.create(name)
11
- info ""
12
- info "Setting up Concrete5 in folder #{name}."
13
- new(name).setup
14
- end
15
-
16
- def initialize(name)
17
- @name = name
18
- end
19
-
20
- def setup
21
- clone_concrete5
22
- set_up_app_folder
23
- initialize_git
24
- create_virtual_host
25
- self
26
- end
27
-
28
- def clone_concrete5
29
- info "* Downloading Concrete5 version 5.6.2.1..."
30
- sh "curl http://www.concrete5.org/download_file/-/view/58379/8497 -o c5.zip > /dev/null"
31
- info ""
32
- info "* Unzipping..."
33
- sh "unzip c5.zip"
34
- sh "rm c5.zip"
35
- sh "mv concrete5.6.2.1 #{name}"
36
- info "* Concrete5 downloaded and unzipped into ./#{name}."
37
- end
38
-
39
- def set_up_app_folder
40
- info "* Setting up folders..."
41
- sh "mkdir #{name}/app"
42
-
43
- symlink_folders
44
- remove_extra_folders
45
- end
46
-
47
- def initialize_git
48
- info "* Setting up git..."
49
- sh "echo 'files/cache/*' > #{name}/.gitignore"
50
- sh "echo 'files/tmp/*' >> #{name}/.gitignore"
51
- sh "cd #{name} && git init && git add -A && git commit -m 'Initial'"
52
- end
53
-
54
- def create_virtual_host
55
- # /private/etc/apache2/extra/httpd-vhosts.conf
56
- # <VirtualHost *:80>
57
- # ServerName "mywebsite.site"
58
- # DocumentRoot "<pwd>/mywebsite.dev"
59
- # </VirtualHost>
60
- end
61
-
62
- def symlink_folders
63
- symlinked_folders.each do |folder|
64
- sh "mv #{name}/#{folder} #{name}/app/#{folder}"
65
- sh "ln -s app/#{folder} #{name}/#{folder}"
66
- end
67
- end
68
-
69
- def symlinked_folders
70
- [
71
- :blocks,
72
- :elements,
73
- :jobs,
74
- :page_types,
75
- :single_pages,
76
- :themes,
77
- :packages,
78
- ]
79
- end
80
-
81
- def remove_extra_folders
82
- sh "rmdir #{name}/" + removed_folders.join(" #{name}/")
83
- end
84
-
85
- def removed_folders
86
- [
87
- :tools,
88
- :libraries,
89
- :models,
90
- :css,
91
- :controllers,
92
- :helpers,
93
- :js,
94
- :languages,
95
- :mail,
96
- ]
97
- end
8
+ def update
9
+ say "Updating pave..."
10
+ `gem update pave`
11
+ ($? == 0) ? (say "Updated") : (say "Update failed. Run `gem update pave` manually.")
98
12
  end
13
+ module_function :update
99
14
  end
data/pave.gemspec CHANGED
@@ -1,13 +1,13 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'pave/version'
4
+ require "pave/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "pave"
8
8
  spec.version = Pave::VERSION
9
- spec.authors = ["Jamon Holmgren"]
10
- spec.email = ["jamon@clearsightstudio.com"]
9
+ spec.authors = ["Jamon Holmgren", "Ryan Linton"]
10
+ spec.email = ["jamon@clearsightstudio.com", "ryanl@clearsightstudio.com"]
11
11
  spec.description = %q{Provides a set of command line tools for Concrete5.}
12
12
  spec.summary = %q{Provides a set of command line tools for Concrete5.}
13
13
  spec.homepage = "https://github.com/jamonholmgren/pave"
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
23
- spec.add_development_dependency('rdoc')
24
- spec.add_development_dependency('rake', '~> 0.9.2')
25
- spec.add_dependency('methadone', '~> 1.3.0')
21
+ spec.add_development_dependency("bundler", "~> 1.3")
22
+ spec.add_development_dependency("rake")
23
+ spec.add_development_dependency("rdoc")
24
+ spec.add_development_dependency("rake", "~> 0.9.2")
25
+ spec.add_dependency("commander", "~> 4.1.5")
26
26
  end
data/test/pave_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'test/unit'
1
+ require "test/unit"
2
2
 
3
3
  class PaveTest < Test::Unit::TestCase
4
4
  def test_is_module
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pave
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamon Holmgren
8
+ - Ryan Linton
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-10-05 00:00:00.000000000 Z
12
+ date: 2013-11-20 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
@@ -67,28 +68,30 @@ dependencies:
67
68
  - !ruby/object:Gem::Version
68
69
  version: 0.9.2
69
70
  - !ruby/object:Gem::Dependency
70
- name: methadone
71
+ name: commander
71
72
  requirement: !ruby/object:Gem::Requirement
72
73
  requirements:
73
74
  - - ~>
74
75
  - !ruby/object:Gem::Version
75
- version: 1.3.0
76
+ version: 4.1.5
76
77
  type: :runtime
77
78
  prerelease: false
78
79
  version_requirements: !ruby/object:Gem::Requirement
79
80
  requirements:
80
81
  - - ~>
81
82
  - !ruby/object:Gem::Version
82
- version: 1.3.0
83
+ version: 4.1.5
83
84
  description: Provides a set of command line tools for Concrete5.
84
85
  email:
85
86
  - jamon@clearsightstudio.com
87
+ - ryanl@clearsightstudio.com
86
88
  executables:
87
89
  - pave
88
90
  extensions: []
89
91
  extra_rdoc_files: []
90
92
  files:
91
93
  - .gitignore
94
+ - .ruby-version
92
95
  - Gemfile
93
96
  - Gemfile.lock
94
97
  - LICENSE.txt
@@ -96,10 +99,12 @@ files:
96
99
  - Rakefile
97
100
  - bin/pave
98
101
  - lib/pave.rb
102
+ - lib/pave/concrete.rb
103
+ - lib/pave/shell.rb
99
104
  - lib/pave/version.rb
105
+ - lib/pave/virtual_host.rb
100
106
  - pave.gemspec
101
107
  - test/pave_test.rb
102
- - test/tc_something.rb
103
108
  homepage: https://github.com/jamonholmgren/pave
104
109
  licenses:
105
110
  - MIT
@@ -120,10 +125,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
125
  version: '0'
121
126
  requirements: []
122
127
  rubyforge_project:
123
- rubygems_version: 2.1.5
128
+ rubygems_version: 2.0.3
124
129
  signing_key:
125
130
  specification_version: 4
126
131
  summary: Provides a set of command line tools for Concrete5.
127
132
  test_files:
128
133
  - test/pave_test.rb
129
- - test/tc_something.rb
data/test/tc_something.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'test/unit'
2
-
3
- class TestSomething < Test::Unit::TestCase
4
- def test_truth
5
- assert true
6
- end
7
- end