purplepkg 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/purple/debian.rb +1 -1
- data/lib/purple/getter.rb +1 -1
- data/lib/purple/getter_wget.rb +37 -28
- data/lib/purple/makefile.rb +3 -3
- data/lib/purple/matches.rb +1 -1
- data/lib/purple/pkg_actions.rb +2 -2
- data/lib/purple/process.rb +2 -2
- data/lib/purple/script.rb +9 -10
- metadata +2 -2
data/lib/purple/debian.rb
CHANGED
@@ -50,7 +50,7 @@ module Purple
|
|
50
50
|
|
51
51
|
def deploy
|
52
52
|
package_list = Dir.new(packagedir).to_a.reject{|s| s =~ /^\.{1,2}/}
|
53
|
-
puts "DEBUG PurpleCabinet#deploy(debian.rb): #{package_list.inspect}"
|
53
|
+
puts "DEBUG PurpleCabinet#deploy(debian.rb): #{package_list.inspect}" if $DEBUG
|
54
54
|
system "cd #{packagedir}; sudo dpkg -i #{package_list.collect{|s| '"'+s+'"'}.join(' ')}"
|
55
55
|
end
|
56
56
|
end
|
data/lib/purple/getter.rb
CHANGED
data/lib/purple/getter_wget.rb
CHANGED
@@ -11,7 +11,7 @@ module Purple
|
|
11
11
|
def get
|
12
12
|
@thread = Thread.new do
|
13
13
|
filename = File.basename uri.path
|
14
|
-
Open3.popen3 "wget --progress dot -O '#{@destdir}/#{filename}' #{@uri.to_s} 2>&1" do
|
14
|
+
Open3.popen3 "wget --passive-ftp --progress dot -O '#{@destdir}/#{filename}' #{@uri.to_s} 2>&1" do
|
15
15
|
|pw, pr, pe|
|
16
16
|
parse_input pw, pr, pe
|
17
17
|
end
|
@@ -25,27 +25,26 @@ module Purple
|
|
25
25
|
# wget specific methods
|
26
26
|
|
27
27
|
def parse_input pw, pr, pe
|
28
|
-
|
28
|
+
puts "DEBUG Getter_wget#parse_input: Start" if $DEBUG
|
29
29
|
|
30
30
|
loop do
|
31
31
|
# Start line
|
32
32
|
2.times { pr.gets }
|
33
33
|
|
34
34
|
# Host lookup
|
35
|
-
|
35
|
+
puts "DEBUG Getter_wget#parse_input: Host lookup" if $DEBUG
|
36
36
|
line = pr.gets
|
37
|
-
|
37
|
+
puts "->#{line}" if $DEBUG
|
38
38
|
if line =~ /failed:/
|
39
39
|
@status = 'Host lookup failed'
|
40
40
|
return
|
41
41
|
end
|
42
42
|
|
43
43
|
# Connecting
|
44
|
-
|
44
|
+
puts "DEBUG Getter_wget#parse_input: Connecting" if $DEBUG
|
45
45
|
line = pr.gets
|
46
|
-
|
46
|
+
puts "->#{line}" if $DEBUG
|
47
47
|
md = /^Connecting to (.*?)... (.*?)$/.match line
|
48
|
-
#puts "DEBUG Getter_wget#parse_input: md[2]=#{md[2].inspect}"
|
49
48
|
|
50
49
|
unless 'connected.' == md[2]
|
51
50
|
@status = 'Connection failed'
|
@@ -53,41 +52,51 @@ module Purple
|
|
53
52
|
end
|
54
53
|
|
55
54
|
# Request
|
56
|
-
|
55
|
+
puts "DEBUG Getter_wget#parse_input: Sending request" if $DEBUG
|
57
56
|
line = pr.gets
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
57
|
+
puts "->#{line}" if $DEBUG
|
58
|
+
case line
|
59
|
+
when /HTTP request sent, awaiting response\.\.\. (.*)/
|
60
|
+
case $1
|
61
|
+
when '200 OK'
|
62
|
+
# Okay. Continue
|
63
|
+
when /^3\d{2}/
|
64
|
+
# Redirection
|
65
|
+
pr.gets # Location line
|
66
|
+
redo
|
67
|
+
else
|
68
|
+
@status = $1
|
69
|
+
return
|
70
|
+
end
|
71
|
+
when /Logging in as anonymous \.\.\. (.*)/
|
72
|
+
case $1
|
73
|
+
when 'Logged in!'
|
74
|
+
# Okay. Go ahead.
|
75
|
+
else
|
76
|
+
@status = $1
|
77
|
+
return
|
78
|
+
end
|
70
79
|
end
|
71
|
-
|
72
80
|
break
|
73
81
|
end
|
74
82
|
|
75
83
|
# Content details
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
84
|
+
loop do
|
85
|
+
line = pr.gets
|
86
|
+
puts "->#{line}" if $DEBUG
|
87
|
+
break if line =~ /^Length: /
|
88
|
+
end
|
89
|
+
#@length = md[1].gsub(',', '').to_i
|
90
|
+
#@content_type = md[3]
|
81
91
|
|
82
92
|
# Empty line
|
83
93
|
pr.gets
|
84
94
|
|
85
95
|
# Data incoming
|
86
96
|
pr.each do |line|
|
87
|
-
|
97
|
+
puts "->#{line}" if $DEBUG
|
88
98
|
|
89
99
|
md = / *([0-9]+)K[ \.]+([0-9]+)% +([0-9\.,]+ KB\/s)/.match line
|
90
|
-
#puts (md ? "DEBUG #{md.to_a.inspect}" : "DEBUG nil")
|
91
100
|
if md
|
92
101
|
@done = md[2]
|
93
102
|
@rate = md[3]
|
data/lib/purple/makefile.rb
CHANGED
@@ -15,7 +15,7 @@ module Purple
|
|
15
15
|
def makefilename
|
16
16
|
return @makefilename if defined? @makefilename
|
17
17
|
@makefilename = ['GNUmakefile', 'makefile', 'Makefile'].find do |name|
|
18
|
-
puts "DEBUG MakefileMaven#makefilename: testing #{File.join(@srcdir, name)}"
|
18
|
+
puts "DEBUG MakefileMaven#makefilename: testing #{File.join(@srcdir, name)}" if $DEBUG
|
19
19
|
FileTest.exist? File.join(@srcdir, name)
|
20
20
|
end
|
21
21
|
end
|
@@ -43,7 +43,7 @@ module Purple
|
|
43
43
|
while files.size > 0
|
44
44
|
filename = File.join(@srcdir, files.shift)
|
45
45
|
if FileTest.exist? filename
|
46
|
-
puts "DEBUG MakefileMaven#makefile_contents: loop->if"
|
46
|
+
puts "DEBUG MakefileMaven#makefile_contents: loop->if" if $DEBUG
|
47
47
|
text = File.open(filename) { |f| f.read }
|
48
48
|
@contents << text
|
49
49
|
text.grep(/^include /).each do |s|
|
@@ -52,7 +52,7 @@ module Purple
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
55
|
-
puts "DEBUG MakefileMaven#makefile_contents: #{@contents.to_a.size} lines"
|
55
|
+
puts "DEBUG MakefileMaven#makefile_contents: #{@contents.to_a.size} lines" if $DEBUG
|
56
56
|
@contents
|
57
57
|
end
|
58
58
|
end
|
data/lib/purple/matches.rb
CHANGED
@@ -11,7 +11,7 @@ module Purple
|
|
11
11
|
def self.match_filename filename
|
12
12
|
md = nil
|
13
13
|
REGEXPS.find { |r| md = r.match filename }
|
14
|
-
|
14
|
+
puts "DEBUG Matches#match_filename: filename=#{filename.inspect} md=#{md.to_a.inspect}" if $DEBUG
|
15
15
|
raise 'filename does not match pattern' if not (md and not md.to_a[0..1].include? nil)
|
16
16
|
|
17
17
|
{ :name => md[1], :version => md[2] }
|
data/lib/purple/pkg_actions.rb
CHANGED
@@ -46,7 +46,7 @@ module Purple
|
|
46
46
|
package_method :make
|
47
47
|
|
48
48
|
def default_prepare
|
49
|
-
puts "DEBUG PackageActions#default_prepare"
|
49
|
+
puts "DEBUG PackageActions#default_prepare" if $DEBUG
|
50
50
|
files.each do |f|
|
51
51
|
unpack = case f
|
52
52
|
when /gz$/; '-z'
|
@@ -73,7 +73,7 @@ module Purple
|
|
73
73
|
|
74
74
|
require 'purple/makefile'
|
75
75
|
|
76
|
-
puts "DEBUG PackageActions#default_stage: srcdir=#{srcdir}"
|
76
|
+
puts "DEBUG PackageActions#default_stage: srcdir=#{srcdir}" if $DEBUG
|
77
77
|
mkm = MakefileMaven.new srcdir
|
78
78
|
if mkm.uses_prefix?
|
79
79
|
if mkm.uses_destdir?
|
data/lib/purple/process.rb
CHANGED
@@ -19,9 +19,9 @@ module Purple
|
|
19
19
|
end
|
20
20
|
Thread.new do
|
21
21
|
begin
|
22
|
-
#puts "DEBUG Purple::Process::Child#start: HERE"
|
22
|
+
#puts "DEBUG Purple::Process::Child#start: HERE" if $DEBUG
|
23
23
|
@exit_code = Process.waitpid2(pid)[1].exitstatus
|
24
|
-
#puts "DEBUG Purple::Process::Child#start: status=#{@exit_code}"
|
24
|
+
#puts "DEBUG Purple::Process::Child#start: status=#{@exit_code}" if $DEBUG
|
25
25
|
ensure
|
26
26
|
@status = :done
|
27
27
|
end
|
data/lib/purple/script.rb
CHANGED
@@ -45,7 +45,7 @@ module Purple
|
|
45
45
|
def self.parse string
|
46
46
|
script = self.new
|
47
47
|
script.instance_eval string
|
48
|
-
puts "DEBUG Purple::Script##parse: cabinet=#{script.cabinet}"
|
48
|
+
puts "DEBUG Purple::Script##parse: cabinet=#{script.cabinet}" if $DEBUG
|
49
49
|
script.cabinet
|
50
50
|
end
|
51
51
|
|
@@ -86,10 +86,9 @@ module Purple
|
|
86
86
|
|
87
87
|
def infer_all
|
88
88
|
@package_scripts.each { |pkg|
|
89
|
-
puts "DEBUG PurpleScript#infer_all"
|
89
|
+
puts "DEBUG PurpleScript#infer_all" if $DEBUG
|
90
90
|
pkg.infer
|
91
91
|
}
|
92
|
-
puts "DEBUG PurpleScript#infer_all: b4end"
|
93
92
|
infer
|
94
93
|
end
|
95
94
|
|
@@ -116,7 +115,7 @@ module Purple
|
|
116
115
|
def initialize cabinet
|
117
116
|
@package = cabinet.create_package
|
118
117
|
@cabinet = cabinet
|
119
|
-
puts "DEBUG PackageScript#initialize: @package=#{@package}"
|
118
|
+
puts "DEBUG PackageScript#initialize: @package=#{@package}" if $DEBUG
|
120
119
|
end
|
121
120
|
|
122
121
|
callthrough :long_name, :name, :identifier, :version, :major, :minor
|
@@ -131,12 +130,12 @@ module Purple
|
|
131
130
|
end
|
132
131
|
|
133
132
|
def infer
|
134
|
-
puts "DEBUG #infer"
|
135
|
-
puts "DEBUG PackageScript#infer: pkg=#{pkg}"
|
133
|
+
puts "DEBUG #infer" if $DEBUG
|
134
|
+
puts "DEBUG PackageScript#infer: pkg=#{pkg}" if $DEBUG
|
136
135
|
# Take a guess at the filename
|
137
136
|
if 0 == pkg.files.size
|
138
137
|
files = @cabinet.files
|
139
|
-
puts "DEBUG #infer: cabinet_files=#{files.inspect}"
|
138
|
+
puts "DEBUG #infer: cabinet_files=#{files.inspect}" if $DEBUG
|
140
139
|
if 0 == files.size
|
141
140
|
warn 'Cabinet files section is empty. Did you not specify any urls?'
|
142
141
|
else
|
@@ -151,11 +150,11 @@ module Purple
|
|
151
150
|
end
|
152
151
|
end
|
153
152
|
|
154
|
-
|
155
|
-
|
153
|
+
puts "DEBUG #infer: pkg.files=#{pkg.files.inspect}" if $DEBUG
|
154
|
+
puts "DEBUG #infer: long_name=#{pkg.long_name}" if $DEBUG
|
156
155
|
# Take a guess at properties long_name, name, version, major, and minor
|
157
156
|
md = Matches.match_filename pkg.files[0]
|
158
|
-
puts "DEBUG #infer: filename match result #{md.inspect}"
|
157
|
+
puts "DEBUG #infer: filename match result #{md.inspect}" if $DEBUG
|
159
158
|
|
160
159
|
pkg.long_name = "#{md[:name]}-#{md[:version]}" if not pkg.long_name
|
161
160
|
pkg.name = md[:name] if not pkg.name
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.1
|
|
3
3
|
specification_version: 1
|
4
4
|
name: purplepkg
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2004-11-
|
6
|
+
version: 0.0.5
|
7
|
+
date: 2004-11-23
|
8
8
|
summary: A simple pre-packing tool with meta-package plugin support.
|
9
9
|
require_paths:
|
10
10
|
- lib
|