fpm 0.3.9 → 0.3.10

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELIST CHANGED
@@ -1,3 +1,10 @@
1
+ 0.3.10 (Oct 10, 2011)
2
+ - Allow taking a list of files/inputs on stdin with '-' or with the --inputs
3
+ flag. (Matt Patterson)
4
+ - (python) pass -U to easy_install (Khalid Goudeaux)
5
+ - (debian) quote paths in md5sum calls (Matt Patterson)
6
+ - (debian) quiet stderr from dpkg --print-architecture
7
+
1
8
  0.3.9 (Sep 8, 2011)
2
9
  - Fix bug in 'dir' source that breaks full paths
3
10
  - Added a bunch of tests (yaay)
@@ -211,7 +211,7 @@ class FPM::Builder
211
211
  "%s %s" % [i[0], i[1].sub(/#{path}\//, '').sub(/\.\//, '')]
212
212
  end
213
213
  elsif File.exists? path
214
- %x{md5sum #{path}}
214
+ %x{md5sum "#{path}"}
215
215
  else
216
216
  next
217
217
  end
@@ -18,6 +18,8 @@ class FPM::Program
18
18
  @settings.source = {} # source settings
19
19
  @settings.target = {} # target settings
20
20
  @settings.config_files ||= []
21
+ @settings.inputs_path = nil # file path to read a list of paths from
22
+ @settings.paths = [] # Paths to include in the package
21
23
 
22
24
  # Maintainer scripts - https://github.com/jordansissel/fpm/issues/18
23
25
  @settings.scripts ||= {}
@@ -27,7 +29,7 @@ class FPM::Program
27
29
 
28
30
  def run(args)
29
31
  $: << File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))
30
- paths = options(args)
32
+ extracted_args = options(args)
31
33
 
32
34
  ok = true
33
35
  if @settings.package_type.nil?
@@ -40,6 +42,9 @@ class FPM::Program
40
42
  ok = false
41
43
  end
42
44
 
45
+ paths = process_paths(extracted_args)
46
+ ok = false if paths == :errors
47
+
43
48
  if !ok
44
49
  $stderr.puts "There were errors; see above."
45
50
  $stderr.puts
@@ -53,6 +58,39 @@ class FPM::Program
53
58
  return 0
54
59
  end # def run
55
60
 
61
+ def process_paths(args)
62
+ paths_iolike = args
63
+ read_from_stdin = args.length == 1 && args.first == '-'
64
+
65
+ ok = true
66
+ if @settings.inputs_path
67
+ if read_from_stdin
68
+ $stderr.puts "Error: setting --inputs conflicts with passing '-' as the only argument"
69
+ ok = false
70
+ end
71
+ unless File.file?(@settings.inputs_path)
72
+ $stderr.puts "Error: '#{@settings.inputs_path}' does not exist"
73
+ ok = false
74
+ end
75
+ end
76
+
77
+ return :errors if !ok
78
+
79
+ if read_from_stdin
80
+ paths_iolike = $stdin
81
+ end
82
+ if @settings.inputs_path
83
+ paths_iolike = File.open(@settings.inputs_path, 'r')
84
+ end
85
+
86
+ paths = []
87
+ paths_iolike.each do |entry|
88
+ paths << entry.strip
89
+ end
90
+ paths_iolike.close if paths_iolike.respond_to?(:close)
91
+ paths
92
+ end # def process_paths
93
+
56
94
  def options(args)
57
95
  opts = OptionParser.new
58
96
  default_options(opts)
@@ -221,5 +259,15 @@ class FPM::Program
221
259
  @settings.url = url
222
260
  end # --url
223
261
 
262
+ opts.on("--inputs FILEPATH",
263
+ "The path to a file containing a newline-separated list of " \
264
+ "files and dirs to package.") do |path|
265
+ settings.source[:inputs] = path
266
+ end
267
+
268
+ opts.separator "Pass - as the only argument to have the list of " \
269
+ "files and dirs read from STDIN " \
270
+ "(e.g. fpm -s dir -t deb - < FILELIST)"
271
+
224
272
  end # def default_options
225
273
  end # class FPM::Program
@@ -60,7 +60,7 @@ class FPM::Source::Python < FPM::Source
60
60
  end
61
61
 
62
62
  safesystem(self[:settings][:easy_install], "-i", self[:settings][:pypi],
63
- "--editable", "--build-directory", @tmpdir, want_pkg)
63
+ "--editable", "-U", "--build-directory", @tmpdir, want_pkg)
64
64
 
65
65
  # easy_install will put stuff in @tmpdir/packagename/, flatten that.
66
66
  # That is, we want @tmpdir/setup.py, and start with
@@ -33,7 +33,7 @@ class FPM::Target::Deb < FPM::Package
33
33
  if @architecture.nil? or @architecture == "native"
34
34
  # Default architecture should be 'native' which we'll need
35
35
  # to ask the system about.
36
- arch = %x{dpkg --print-architecture}.chomp
36
+ arch = %x{dpkg --print-architecture 2> /dev/null}.chomp
37
37
  if $?.exitstatus != 0
38
38
  arch = %x{uname -m}.chomp
39
39
  @logger.warn("Can't find 'dpkg' tool (need it to get default " \
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fpm
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 3
9
- - 9
10
- version: 0.3.9
8
+ - 10
9
+ version: 0.3.10
11
10
  platform: ruby
12
11
  authors:
13
12
  - Jordan Sissel
@@ -15,7 +14,8 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-09-08 00:00:00 Z
17
+ date: 2011-10-11 00:00:00 -07:00
18
+ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: json
@@ -25,7 +25,6 @@ dependencies:
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- hash: 3
29
28
  segments:
30
29
  - 0
31
30
  version: "0"
@@ -41,45 +40,44 @@ extensions: []
41
40
  extra_rdoc_files: []
42
41
 
43
42
  files:
44
- - lib/fpm/builder.rb
45
- - lib/fpm/target/puppet.rb
46
- - lib/fpm/target/solaris.rb
47
- - lib/fpm/target/rpm.rb
48
- - lib/fpm/target/deb.rb
43
+ - lib/fpm.rb
44
+ - lib/rpm/lead.rb
45
+ - lib/rpm/namespace.rb
46
+ - lib/rpm/rpmfile.rb
47
+ - lib/rpm/tag.rb
48
+ - lib/rpm/header.rb
49
49
  - lib/fpm/rubyfixes.rb
50
50
  - lib/fpm/flags.rb
51
- - lib/fpm/errors.rb
52
- - lib/fpm/source.rb
53
51
  - lib/fpm/namespace.rb
54
- - lib/fpm/package.rb
55
- - lib/fpm/util.rb
56
52
  - lib/fpm/program.rb
57
53
  - lib/fpm/source/gem.rb
58
- - lib/fpm/source/npm.rb
59
- - lib/fpm/source/python.rb
60
- - lib/fpm/source/rpm.rb
61
54
  - lib/fpm/source/dir.rb
62
55
  - lib/fpm/source/tar.rb
63
- - lib/fpm/source/pyfpm/__init__.pyc
64
- - lib/fpm/source/pyfpm/get_metadata.pyc
65
- - lib/fpm/source/pyfpm/__init__.py
56
+ - lib/fpm/source/npm.rb
57
+ - lib/fpm/source/rpm.rb
66
58
  - lib/fpm/source/pyfpm/get_metadata.py
67
- - lib/rpm/tag.rb
68
- - lib/rpm/rpmfile.rb
69
- - lib/rpm/lead.rb
70
- - lib/rpm/namespace.rb
71
- - lib/rpm/header.rb
72
- - lib/fpm.rb
73
- - bin/fpm
59
+ - lib/fpm/source/pyfpm/__init__.py
60
+ - lib/fpm/source/python.rb
61
+ - lib/fpm/builder.rb
62
+ - lib/fpm/source.rb
63
+ - lib/fpm/package.rb
64
+ - lib/fpm/target/puppet.rb
65
+ - lib/fpm/target/deb.rb
66
+ - lib/fpm/target/solaris.rb
67
+ - lib/fpm/target/rpm.rb
68
+ - lib/fpm/util.rb
69
+ - lib/fpm/errors.rb
74
70
  - bin/fpm-npm
75
- - templates/puppet/package.pp.erb
76
- - templates/puppet/package/remove.pp.erb
77
- - templates/deb.erb
71
+ - bin/fpm
78
72
  - templates/rpm.erb
79
73
  - templates/solaris.erb
74
+ - templates/puppet/package/remove.pp.erb
75
+ - templates/puppet/package.pp.erb
76
+ - templates/deb.erb
80
77
  - LICENSE
81
78
  - CONTRIBUTORS
82
79
  - CHANGELIST
80
+ has_rdoc: true
83
81
  homepage: https://github.com/jordansissel/fpm
84
82
  licenses: []
85
83
 
@@ -94,7 +92,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
94
92
  requirements:
95
93
  - - ">="
96
94
  - !ruby/object:Gem::Version
97
- hash: 3
98
95
  segments:
99
96
  - 0
100
97
  version: "0"
@@ -103,14 +100,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
100
  requirements:
104
101
  - - ">="
105
102
  - !ruby/object:Gem::Version
106
- hash: 3
107
103
  segments:
108
104
  - 0
109
105
  version: "0"
110
106
  requirements: []
111
107
 
112
108
  rubyforge_project:
113
- rubygems_version: 1.7.2
109
+ rubygems_version: 1.3.7
114
110
  signing_key:
115
111
  specification_version: 3
116
112
  summary: fpm - package building and mangling