berkes-drupal.rb 0.0.7 → 0.0.8
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.
- data/History.txt +9 -0
- data/README.txt +21 -4
- data/bin/drupal +1 -1
- data/drupal.rb.gemspec +1 -1
- data/lib/drupal.rb +11 -3
- data/lib/drupal/create_module.rb +73 -37
- data/lib/drupal/install.rb +90 -42
- metadata +3 -2
data/History.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
=== 0.0.8 / 2009-08-06
|
2
|
+
|
3
|
+
* 1 Internal rewrite, 2 new features, 1 bugfix
|
4
|
+
* Added commandline option to allow selection of Drupal version for installation.
|
5
|
+
|
6
|
+
* Rewrote install system by parsing the drupal release XML rather then scraping HTML.
|
7
|
+
* Added defaults.yml config option. When this file is present, we parse the contents and
|
8
|
+
present them as defaults in interactive mode. Quicker module-building!
|
9
|
+
* If hook "install" was chose, the .install file was not created. Fixed.
|
1
10
|
|
2
11
|
=== 0.0.7 / 2009-05-02
|
3
12
|
|
data/README.txt
CHANGED
@@ -19,7 +19,8 @@ to quickly generate and manage Drupal modules.
|
|
19
19
|
|
20
20
|
create module <module_name> Generates a module skeleton from an interactive wizard.
|
21
21
|
todo list [total] Displays list of todo items or a total.
|
22
|
-
install <core | project> [dir]
|
22
|
+
install <core | project> [dir] [5.x|6.x|7.x]
|
23
|
+
Install a Drupal project or core itself to [dir] (defaults to curent dir) for version (defaults to 6.x)
|
23
24
|
|
24
25
|
== OPTIONS:
|
25
26
|
|
@@ -43,6 +44,18 @@ to quickly generate and manage Drupal modules.
|
|
43
44
|
View total todo items only.
|
44
45
|
drupal todo list total ./sites/all/modules
|
45
46
|
|
47
|
+
Install drupal core to the current directory.
|
48
|
+
drupal install core
|
49
|
+
|
50
|
+
Install a 5.x module when in the 'modules directory
|
51
|
+
drupal install devel . 5.x
|
52
|
+
|
53
|
+
Install a module to the modules folder in my new installation (from drupal root)
|
54
|
+
drupal install devel ./sites/all/modules
|
55
|
+
|
56
|
+
Install a module when in the 'modules directory
|
57
|
+
drupal install devel
|
58
|
+
|
46
59
|
== LOCAL TEMPLATES
|
47
60
|
|
48
61
|
Create .drupal.rb/templates/ directories in your home-directory and put your
|
@@ -51,11 +64,15 @@ to quickly generate and manage Drupal modules.
|
|
51
64
|
e.g. $ mkdir ~/.drupal.rb/
|
52
65
|
$ cp -r /path/to/gems/berkes-drupal.rb-0.0.7/var/lib/drupal/templates/ \
|
53
66
|
~/.drupal.rb/templates/
|
67
|
+
|
68
|
+
== DEFAULTS
|
69
|
+
Create a file in ~/.drupal.rb/ named defaults.yml. The variables in there will
|
70
|
+
be used as defaults on the prompt when creating a module.
|
71
|
+
Alternatively you can copy the example from the doc dir in the package.
|
54
72
|
|
55
73
|
== TODO:
|
56
|
-
|
57
|
-
* Add
|
58
|
-
instead of asking them everytime.
|
74
|
+
* Move helptext into one include instead of having it on 4 places (DRY!)
|
75
|
+
* Add Drupal version support to defaults.yml.
|
59
76
|
* Remove ':' from todo list items
|
60
77
|
* Add formatted help option
|
61
78
|
* Support versions for installer
|
data/bin/drupal
CHANGED
data/drupal.rb.gemspec
CHANGED
data/lib/drupal.rb
CHANGED
@@ -8,7 +8,8 @@
|
|
8
8
|
#
|
9
9
|
# create module <module_name> [dir] Generates a module skeleton from an interactive wizard. Current directory unless [dir] is specified.
|
10
10
|
# todo list [total] Displays list of todo items or a total.
|
11
|
-
# install <core | project
|
11
|
+
# install <core | project> [dir] [5.x|6.x|7.x]
|
12
|
+
# Install a Drupal project or core itself to [dir] (defaults to curent dir) for version (defaults to 6.x)
|
12
13
|
#
|
13
14
|
# == OPTIONS:
|
14
15
|
#
|
@@ -38,6 +39,9 @@
|
|
38
39
|
# Install a module when in the 'modules directory
|
39
40
|
# drupal install devel
|
40
41
|
#
|
42
|
+
# Install a 5.x module when in the 'modules directory
|
43
|
+
# drupal install devel . 5.x
|
44
|
+
#
|
41
45
|
# Install several modules to the modules folder
|
42
46
|
# drupal install devel,pathauto,err,ac ./sites/all/modules
|
43
47
|
#
|
@@ -105,7 +109,8 @@ class Drupal
|
|
105
109
|
|
106
110
|
create module <module_name> [dir] Generates a module skeleton from an interactive wizard. Current directory unless [dir] is specified.
|
107
111
|
todo list [total] Displays list of todo items or a total.
|
108
|
-
install <core | project> [dir]
|
112
|
+
install <core | project> [dir] [5.x|6.x|7.x]
|
113
|
+
Install a Drupal project or core itself to [dir] (defaults to curent dir) for version (defaults to 6.x)
|
109
114
|
|
110
115
|
EXAMPLES:
|
111
116
|
|
@@ -126,7 +131,10 @@ class Drupal
|
|
126
131
|
|
127
132
|
Install drupal core to the current directory.
|
128
133
|
drupal install core
|
129
|
-
|
134
|
+
|
135
|
+
Install a 5.x module when in the 'modules directory
|
136
|
+
drupal install devel . 5.x
|
137
|
+
|
130
138
|
Install a module to the modules folder in my new installation (from drupal root)
|
131
139
|
drupal install devel ./sites/all/modules
|
132
140
|
|
data/lib/drupal/create_module.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
require 'yaml'
|
1
2
|
|
2
3
|
class Drupal
|
3
4
|
class Create_Module
|
4
|
-
|
5
|
+
|
5
6
|
# Create a module using the module builing wizard.
|
6
7
|
def run(arguments)
|
7
8
|
@arguments = arguments
|
@@ -9,44 +10,46 @@ class Drupal
|
|
9
10
|
self.check_module_name
|
10
11
|
self.run_wizard
|
11
12
|
end
|
12
|
-
|
13
|
+
|
13
14
|
# Ensure module name is supplied and that it is
|
14
15
|
# formatted correctly as module names must be alphanumeric
|
15
16
|
# and must begin with a letter.
|
16
17
|
def check_module_name
|
17
|
-
case
|
18
|
+
case
|
18
19
|
when @arguments.empty?; puts 'Module name required.'; exit 3
|
19
20
|
when !@arguments[0].match(/^[a-z][\w]+/); puts 'Invalid module name.'; exit 4
|
20
21
|
else @module = @arguments[0]
|
21
22
|
end
|
22
23
|
end
|
23
|
-
|
24
|
+
|
24
25
|
# Run module generation wizard.
|
25
26
|
def run_wizard
|
26
27
|
# TODO create self.log() with padding to even output
|
28
|
+
defaults = get_defaults
|
29
|
+
|
27
30
|
# Info
|
28
|
-
@author = self.ask('What is your name?:')
|
29
|
-
@link = self.ask('What is the URI to your companies website?:')
|
30
|
-
@email = self.ask('What is your email?:')
|
31
|
-
@module_name = self.ask('Enter a human readable name for your module:')
|
32
|
-
@module_description = self.ask('Enter a short description of your module:')
|
33
|
-
@module_dependencies = self.ask('Enter a list of dependencies for your module:', true)
|
31
|
+
@author = self.ask('What is your name?:', defaults[:author])
|
32
|
+
@link = self.ask('What is the URI to your companies website?:', defaults[:link])
|
33
|
+
@email = self.ask('What is your email?:', defaults[:email])
|
34
|
+
@module_name = self.ask('Enter a human readable name for your module:', defaults[:module_name])
|
35
|
+
@module_description = self.ask('Enter a short description of your module:', defaults[:module_description])
|
36
|
+
@module_dependencies = self.ask('Enter a list of dependencies for your module:', defaults[:module_dependencies], true)
|
34
37
|
# Hooks
|
35
38
|
puts self.list_templates('Hooks:', 'hooks')
|
36
|
-
@hooks = self.ask('Which hooks would you like to implement?:', true)
|
39
|
+
@hooks = self.ask('Which hooks would you like to implement?:', '', true)
|
37
40
|
# Files
|
38
41
|
puts self.list_templates('Files:', 'txt')
|
39
|
-
@files = self.ask('Which additional files would you like to include?:', true)
|
42
|
+
@files = self.ask('Which additional files would you like to include?:', '', true)
|
40
43
|
# Dirs
|
41
44
|
puts "\nCommon directories:"
|
42
45
|
puts ['js', 'images', 'css'].collect{ |d| " - " << d }
|
43
|
-
@dirs = self.ask('Which directories would you like to create?:', true)
|
46
|
+
@dirs = self.ask('Which directories would you like to create?:', '', true)
|
44
47
|
# Finish
|
45
48
|
self.create_tokens
|
46
49
|
self.create_hook_weights
|
47
50
|
self.create_module
|
48
51
|
end
|
49
|
-
|
52
|
+
|
50
53
|
# Create global tokens.
|
51
54
|
def create_tokens
|
52
55
|
@tokens = {
|
@@ -59,7 +62,7 @@ class Drupal
|
|
59
62
|
:module_dependencies => @module_dependencies,
|
60
63
|
}
|
61
64
|
end
|
62
|
-
|
65
|
+
|
63
66
|
# Register hook weights
|
64
67
|
def create_hook_weights
|
65
68
|
@hook_weights = [
|
@@ -75,7 +78,7 @@ class Drupal
|
|
75
78
|
'block',
|
76
79
|
]
|
77
80
|
end
|
78
|
-
|
81
|
+
|
79
82
|
# Create module from wizard results.
|
80
83
|
def create_module
|
81
84
|
puts "\n... Creating module '#{@module}' in '#{@dir}'"
|
@@ -88,21 +91,21 @@ class Drupal
|
|
88
91
|
self.create_module_info_file
|
89
92
|
puts 'Module created :)'
|
90
93
|
end
|
91
|
-
|
94
|
+
|
92
95
|
# Create directories.
|
93
96
|
def create_module_dirs
|
94
97
|
@dirs.each{ |dir| create_dir("#{@module}/#{dir}") }
|
95
98
|
end
|
96
|
-
|
99
|
+
|
97
100
|
# Create file templates.
|
98
101
|
def create_module_files
|
99
102
|
@files.each do |file|
|
100
103
|
filepath = "#{file.upcase}.txt"
|
101
104
|
create_file(filepath)
|
102
105
|
append_template(filepath, "txt/#{file}", @tokens)
|
103
|
-
end
|
106
|
+
end
|
104
107
|
end
|
105
|
-
|
108
|
+
|
106
109
|
# Create .module file.
|
107
110
|
def create_module_file
|
108
111
|
create_file("#{@module}.module", "<?php\n")
|
@@ -112,20 +115,20 @@ class Drupal
|
|
112
115
|
if @hooks.include?(hook)
|
113
116
|
append_template("#{@module}.module", "hooks/#{hook}", @tokens) unless hook.match /^install|schema/
|
114
117
|
end
|
115
|
-
end
|
118
|
+
end
|
116
119
|
end
|
117
|
-
|
120
|
+
|
118
121
|
# Create .install file.
|
119
122
|
def create_module_install_file
|
120
|
-
if @hooks.include?('schema') || @hooks.include?('
|
123
|
+
if @hooks.include?('schema') || @hooks.include?('install')
|
121
124
|
create_file("#{@module}.install", "<?php\n")
|
122
125
|
append_template("#{@module}.install", 'comments/file', @tokens)
|
123
126
|
@hooks.each do |hook|
|
124
127
|
append_template("#{@module}.install", "hooks/#{hook}", @tokens) if hook.match /^install|schema/
|
125
128
|
end
|
126
|
-
end
|
129
|
+
end
|
127
130
|
end
|
128
|
-
|
131
|
+
|
129
132
|
# Create info file.
|
130
133
|
def create_module_info_file
|
131
134
|
contents = '; $Id$'
|
@@ -137,14 +140,14 @@ class Drupal
|
|
137
140
|
end
|
138
141
|
create_file("#{@module}.info", contents)
|
139
142
|
end
|
140
|
-
|
143
|
+
|
141
144
|
# Create a new directory.
|
142
145
|
def create_dir(dir)
|
143
146
|
dir = "#{@dir}/#{dir}"
|
144
147
|
puts "... Creating directory '#{dir}'"
|
145
148
|
Dir.mkdir(dir)
|
146
149
|
end
|
147
|
-
|
150
|
+
|
148
151
|
# Create a new file.
|
149
152
|
def create_file(filepath, contents = '')
|
150
153
|
filepath = "#{@dir}/#{@module}/#{filepath}"
|
@@ -153,7 +156,7 @@ class Drupal
|
|
153
156
|
f.write contents
|
154
157
|
end
|
155
158
|
end
|
156
|
-
|
159
|
+
|
157
160
|
# Append a tokenized template template to a file.
|
158
161
|
def append_template(filepath, template, tokens = {})
|
159
162
|
# TODO: ensure template exists
|
@@ -172,28 +175,36 @@ class Drupal
|
|
172
175
|
f.write contents
|
173
176
|
end
|
174
177
|
end
|
175
|
-
|
178
|
+
|
176
179
|
# Prompt user for input
|
177
|
-
def ask(question, list = false)
|
180
|
+
def ask(question, default = '', list = false)
|
181
|
+
if not default.to_s.empty? then question = question << " (#{default})" end
|
178
182
|
puts "\n" << question
|
183
|
+
|
179
184
|
# TODO: support 'all'
|
180
185
|
# TODO: why is gets not working?
|
181
186
|
# TODO: not catching exception when CTRL+C ?
|
182
187
|
begin
|
183
188
|
case list
|
184
|
-
when true; STDIN.gets.split
|
185
|
-
when false; STDIN.gets.gsub!(/\n/, '')
|
189
|
+
when true; input = STDIN.gets.split
|
190
|
+
when false; input = STDIN.gets.gsub!(/\n/, '')
|
186
191
|
end
|
187
192
|
rescue => e
|
188
193
|
puts ':)'
|
189
194
|
end
|
195
|
+
|
196
|
+
if input.empty?
|
197
|
+
return default
|
198
|
+
else
|
199
|
+
return input
|
200
|
+
end
|
190
201
|
end
|
191
|
-
|
202
|
+
|
192
203
|
# List templates available of a certain type.
|
193
204
|
def list_templates(title, type)
|
194
205
|
"\n" << title << self.get_templates(type).collect{ |t| "\n - " << File.basename(t) }.join
|
195
206
|
end
|
196
|
-
|
207
|
+
|
197
208
|
# Get array of templates of a certain type.
|
198
209
|
def get_templates(type)
|
199
210
|
Dir[get_template_location << type << '/*']
|
@@ -202,11 +213,36 @@ class Drupal
|
|
202
213
|
|
203
214
|
private
|
204
215
|
def get_template_location
|
205
|
-
location = File.expand_path '~/.drupal.rb/templates
|
216
|
+
location = File.expand_path '~/.drupal.rb/templates'
|
217
|
+
|
206
218
|
unless File.directory? location
|
207
|
-
location = File.dirname(__FILE__) + '/templates
|
219
|
+
location = File.dirname(__FILE__) + '/templates'
|
220
|
+
end
|
221
|
+
|
222
|
+
return location + '/'
|
223
|
+
end
|
224
|
+
|
225
|
+
# @TODO: implement defaults that can be altered for list of hooks and files
|
226
|
+
def get_defaults
|
227
|
+
defaults = {}
|
228
|
+
location = File.expand_path '~/.drupal.rb/defaults.yml'
|
229
|
+
if File.readable? location
|
230
|
+
defaults_yml = File.open( location ) { |yf| YAML::load( yf ) }
|
231
|
+
|
232
|
+
# @TODO: There is most probably a much nicer Rubyism for this nested looping.
|
233
|
+
# If you know Ruby better then I do, please chime in and change this.
|
234
|
+
create_tokens().each do |token|
|
235
|
+
defaults_yml.each do |d|
|
236
|
+
if (d.has_key? token.first.to_s)
|
237
|
+
defaults[token.first] = d[token.first.to_s]
|
238
|
+
end
|
239
|
+
end
|
240
|
+
end
|
241
|
+
else
|
242
|
+
defaults = create_tokens
|
208
243
|
end
|
209
|
-
|
244
|
+
|
245
|
+
return defaults
|
210
246
|
end
|
211
247
|
end
|
212
248
|
end
|
data/lib/drupal/install.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
|
-
|
2
1
|
require 'zlib'
|
3
2
|
require 'net/http'
|
3
|
+
require 'rexml/document'
|
4
4
|
|
5
5
|
class Drupal
|
6
6
|
class Install
|
7
|
-
|
7
|
+
include REXML
|
8
8
|
# Attempt to download core installation or module.
|
9
9
|
def run(arguments)
|
10
10
|
@project = arguments[0]
|
11
|
-
@dest = arguments[1] || '.'
|
11
|
+
@dest = arguments[1] || '.'
|
12
|
+
@version = arguments[2] || '6.x'
|
12
13
|
abort "Destination #{@dest} is not a directory." unless File.directory?(@dest)
|
13
14
|
abort 'Project name required (core | <project>).' if arguments.empty?
|
14
15
|
install_projects
|
15
16
|
end
|
16
|
-
|
17
|
+
|
17
18
|
def debug(message)
|
18
19
|
puts '... ' + message
|
19
20
|
end
|
20
|
-
|
21
|
+
|
21
22
|
# Install single project or iterate lists.
|
22
23
|
def install_projects
|
23
24
|
if @project.include? ','
|
@@ -25,71 +26,118 @@ class Drupal
|
|
25
26
|
projects.each do |p|
|
26
27
|
@project = p
|
27
28
|
check_core
|
28
|
-
install_project
|
29
|
+
install_project
|
29
30
|
puts
|
30
|
-
end
|
31
|
+
end
|
31
32
|
else
|
32
33
|
check_core
|
33
34
|
install_project
|
34
35
|
end
|
35
36
|
end
|
36
|
-
|
37
|
+
|
37
38
|
# Check if the destination is empty.
|
38
39
|
def destination_empty?
|
39
|
-
Dir['*'].length == 0
|
40
|
+
Dir['*'].length == 0
|
40
41
|
end
|
41
|
-
|
42
|
+
|
42
43
|
# Allow users to type 'core' instead of 'drupal install drupal'
|
43
44
|
def check_core
|
44
45
|
@project = 'drupal' if @project =~ /^core|drupal$/
|
45
46
|
end
|
46
|
-
|
47
|
+
|
47
48
|
# Check if a uri is available.
|
48
49
|
def uri_available?(uri)
|
49
50
|
open(uri) rescue false
|
50
51
|
end
|
51
|
-
|
52
|
+
|
52
53
|
# Install project.
|
54
|
+
# @TODO move all the updates.drupal.org xml parsing into a separate Class
|
53
55
|
def install_project
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
@markup = response.body
|
59
|
-
# TODO: check 404
|
60
|
-
debug 'Located the project page'
|
61
|
-
rescue
|
62
|
-
puts 'Failed to request page'
|
63
|
-
end
|
64
|
-
@markup.match /(#{@project}-6(?:.*?)\.gz)/
|
65
|
-
@tarball = $1
|
66
|
-
@tarpath = File.expand_path("#{@dest}/#{@tarball}")
|
67
|
-
abort "Failed to find Drupal 6 tar of #{@project}" if @tarball.nil?
|
68
|
-
debug "Found tarball #{@tarball}"
|
69
|
-
|
70
|
-
# Fetch tarball
|
71
|
-
begin
|
72
|
-
response = Net::HTTP.get_response(URI.parse("http://ftp.drupal.org/files/projects/#{@tarball}"))
|
73
|
-
File.open(@tarpath, 'w') do |f|
|
74
|
-
f.write response.body
|
75
|
-
end
|
76
|
-
debug "Copied tarball to #{@tarpath}"
|
77
|
-
rescue
|
78
|
-
abort "Failed to copy remote tarball #{@tarball}"
|
79
|
-
end
|
80
|
-
|
56
|
+
xmldoc = get_xml(@project, @version)
|
57
|
+
release = get_release(xmldoc, 'latest')
|
58
|
+
@tarpath = get_tarball(release)
|
59
|
+
|
81
60
|
# Extract tarball
|
82
61
|
@pwd = Dir.getwd
|
83
62
|
Dir.chdir File.dirname(@tarpath) and debug "Changed cwd to #{File.dirname(@tarpath)}" unless @dest == '.'
|
84
63
|
Kernel.system "tar -xf #{@tarpath}" rescue abort "Failed to extract #{@tarpath}"
|
85
64
|
Dir.chdir @pwd and debug "Reverted cwd back to #{@pwd}" unless @dest == '.'
|
86
|
-
|
65
|
+
|
87
66
|
# Remove tarball
|
88
67
|
Kernel.system "rm #{@tarpath}" rescue abort "Failed to remove #{@tarpath}"
|
89
|
-
|
68
|
+
|
90
69
|
# Installation complete
|
91
70
|
debug "Project installed to #{File.dirname(@tarpath)}" unless @dest == '.'
|
92
71
|
debug 'Installation complete'
|
93
72
|
end
|
73
|
+
|
74
|
+
def get_xml project, version='6.x'
|
75
|
+
debug "Locating #{project} page"
|
76
|
+
# Locate tarball from project page
|
77
|
+
begin
|
78
|
+
response = Net::HTTP.get_response(URI.parse("http://updates.drupal.org/release-history/#{project}/#{version}"))
|
79
|
+
# TODO: unhardcode the dependency on Drupal 6, make this an environment or static var.
|
80
|
+
# TODO: check 404, 403 etc.
|
81
|
+
xmldoc = Document.new response.body
|
82
|
+
if xmldoc.root.name == 'error' #TODO: better error handling here.
|
83
|
+
message = xmldoc.root.text
|
84
|
+
raise message
|
85
|
+
end
|
86
|
+
rescue
|
87
|
+
debug "Could not fetch #{project}. Error: #{message}"
|
88
|
+
end
|
89
|
+
|
90
|
+
return xmldoc
|
91
|
+
end
|
92
|
+
|
93
|
+
def get_releases(xmldoc)
|
94
|
+
releases = Hash.new
|
95
|
+
|
96
|
+
xmldoc.root.each_element('//release') do |release|
|
97
|
+
releases[release.text('version')] = release
|
98
|
+
end
|
99
|
+
|
100
|
+
return releases
|
101
|
+
end
|
102
|
+
|
103
|
+
# returns the release with releasenumber 'which' from xmldoc.
|
104
|
+
# use 'latest' for which, if you want the latest stable release
|
105
|
+
def get_release(xmldoc, which)
|
106
|
+
releases = get_releases(xmldoc)
|
107
|
+
|
108
|
+
ordered = releases.keys.sort_by {|k| k.to_s.split(/\.|-/).map {|v| v.to_i} }
|
109
|
+
|
110
|
+
if ( which == 'latest' )
|
111
|
+
release = releases[ordered.last]
|
112
|
+
elsif ordered.include? which
|
113
|
+
release = releases[which]
|
114
|
+
else
|
115
|
+
raise "Failed to find requested release #{which}"
|
116
|
+
end
|
117
|
+
|
118
|
+
return release
|
119
|
+
end
|
120
|
+
|
121
|
+
def get_tarball(release)
|
122
|
+
tarball = release.elements['//download_link'].text
|
123
|
+
tarpath = File.basename(tarball)
|
124
|
+
|
125
|
+
abort "Failed to find Drupal 6 tar of #{@project}" if tarball.nil?
|
126
|
+
debug "Found tarball #{tarball}"
|
127
|
+
|
128
|
+
# Fetch tarball
|
129
|
+
begin
|
130
|
+
response = Net::HTTP.get_response(URI.parse(tarball))
|
131
|
+
puts tarpath
|
132
|
+
File.open(tarpath, 'w') do |f|
|
133
|
+
f.write response.body
|
134
|
+
end
|
135
|
+
debug "Copied tarball to #{tarpath}"
|
136
|
+
rescue
|
137
|
+
abort "Failed to copy remote tarball #{tarball} to #{tarpath}"
|
138
|
+
end
|
139
|
+
|
140
|
+
return tarpath
|
141
|
+
end
|
94
142
|
end
|
95
|
-
end
|
143
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: berkes-drupal.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tj@vision-media.ca
|
@@ -51,6 +51,7 @@ files:
|
|
51
51
|
- bin/drupal
|
52
52
|
has_rdoc: true
|
53
53
|
homepage: http://berkes.github.com/drupal.rb/
|
54
|
+
licenses:
|
54
55
|
post_install_message:
|
55
56
|
rdoc_options:
|
56
57
|
- --main
|
@@ -72,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
73
|
requirements: []
|
73
74
|
|
74
75
|
rubyforge_project:
|
75
|
-
rubygems_version: 1.
|
76
|
+
rubygems_version: 1.3.5
|
76
77
|
signing_key:
|
77
78
|
specification_version: 2
|
78
79
|
summary: Drupal development kit
|