fpm 0.4.0pre1 → 0.4.0pre2
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/lib/fpm/command.rb +4 -3
- data/lib/fpm/package.rb +19 -8
- data/lib/fpm/package/rpm.rb +2 -1
- data/templates/rpm.erb +8 -1
- metadata +15 -15
data/lib/fpm/command.rb
CHANGED
@@ -92,7 +92,7 @@ class FPM::Command < Clamp::Command
|
|
92
92
|
option ["-S", "--package-name-suffix"], "PACKAGE_NAME_SUFFIX",
|
93
93
|
"a name suffix to append to package and dependencies."
|
94
94
|
option ["-e", "--edit"], :flag,
|
95
|
-
"Edit the package spec before building."
|
95
|
+
"Edit the package spec before building.", :default => false
|
96
96
|
option ["-x", "--exclude"], "EXCLUDE_PATTERN",
|
97
97
|
"Exclude paths matching pattern (shell wildcard globs valid here)" do |val|
|
98
98
|
@exclude_pattern ||= []
|
@@ -167,6 +167,7 @@ class FPM::Command < Clamp::Command
|
|
167
167
|
@logger = Cabin::Channel.get
|
168
168
|
@logger.subscribe(STDOUT)
|
169
169
|
@logger.level = :warn
|
170
|
+
|
170
171
|
validator = Validator.new(self)
|
171
172
|
if !validator.ok?
|
172
173
|
validator.messages.each do |message|
|
@@ -176,7 +177,6 @@ class FPM::Command < Clamp::Command
|
|
176
177
|
@logger.fatal("Fix the above problems, and you'll be rolling packages in no time!")
|
177
178
|
return 1
|
178
179
|
end
|
179
|
-
|
180
180
|
input_class = FPM::Package.types[input_type]
|
181
181
|
output_class = FPM::Package.types[output_type]
|
182
182
|
|
@@ -198,10 +198,11 @@ class FPM::Command < Clamp::Command
|
|
198
198
|
# clamp makes option attributes available as accessor methods
|
199
199
|
# do --foo-bar is available as 'foo_bar'
|
200
200
|
# make these available as package attributes.
|
201
|
+
attr = "#{attr}?" if !respond_to?(attr)
|
201
202
|
input.attributes[attr.to_sym] = send(attr) if respond_to?(attr)
|
202
203
|
end
|
203
204
|
end
|
204
|
-
|
205
|
+
|
205
206
|
args.each do |arg|
|
206
207
|
input.input(arg)
|
207
208
|
end
|
data/lib/fpm/package.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
|
-
require "fpm/namespace"
|
2
|
-
require "fpm/util"
|
3
|
-
require "
|
4
|
-
require "
|
5
|
-
require "
|
1
|
+
require "fpm/namespace" # local
|
2
|
+
require "fpm/util" # local
|
3
|
+
require "tmpdir" # stdlib
|
4
|
+
require "socket" # stdlib, for Socket.gethostname
|
5
|
+
require "shellwords" # stdlib, for Shellwords.escape
|
6
|
+
require "cabin" # gem "cabin"
|
6
7
|
|
7
8
|
# This class is the parent of all packages.
|
8
9
|
# If you want to implement an FPM package type, you'll inherit from this.
|
9
|
-
#
|
10
|
-
# There are
|
11
10
|
class FPM::Package
|
12
11
|
include FPM::Util
|
13
12
|
include Cabin::Inspectable
|
@@ -269,6 +268,17 @@ class FPM::Package
|
|
269
268
|
.gsub("TYPE", type.to_s)
|
270
269
|
end # def to_s
|
271
270
|
|
271
|
+
def edit_file(path)
|
272
|
+
editor = ENV['FPM_EDITOR'] || ENV['EDITOR'] || 'vi'
|
273
|
+
@logger.info("Launching editor", :file => path)
|
274
|
+
safesystem("#{editor} #{Shellwords.escape(path)}")
|
275
|
+
|
276
|
+
if File.size(path) == 0
|
277
|
+
raise "Empty file after editing: #{path.inspect}"
|
278
|
+
end
|
279
|
+
end # def edit_file
|
280
|
+
|
281
|
+
|
272
282
|
class << self
|
273
283
|
# This method is invoked when subclass occurs.
|
274
284
|
#
|
@@ -332,5 +342,6 @@ class FPM::Package
|
|
332
342
|
public(:type, :initialize, :convert, :input, :output, :to_s, :cleanup, :files)
|
333
343
|
|
334
344
|
# Package internal public api
|
335
|
-
public(:cleanup_staging, :cleanup_build, :staging_path, :converted_from
|
345
|
+
public(:cleanup_staging, :cleanup_build, :staging_path, :converted_from,
|
346
|
+
:edit_file)
|
336
347
|
end # class FPM::Package
|
data/lib/fpm/package/rpm.rb
CHANGED
@@ -108,7 +108,8 @@ class FPM::Package::RPM < FPM::Package
|
|
108
108
|
rpmspec = template("rpm.erb").result(binding)
|
109
109
|
specfile = File.join(build_path("SPECS"), "#{name}.spec")
|
110
110
|
File.write(specfile, rpmspec)
|
111
|
-
|
111
|
+
|
112
|
+
edit_file(specfile) if attributes[:edit?]
|
112
113
|
|
113
114
|
args << specfile
|
114
115
|
#if defines.empty?
|
data/templates/rpm.erb
CHANGED
@@ -88,6 +88,13 @@ fi
|
|
88
88
|
<%# Output config files and then regular files. -%>
|
89
89
|
<%= config_files.collect { |c| '%config ' + c }.join("\n") -%>
|
90
90
|
<%# list only files, not directories? %>
|
91
|
-
<%=
|
91
|
+
<%=
|
92
|
+
# Reject directories, then prefix files with "/", then make sure
|
93
|
+
# paths with spaces are quoted. I hate rpm so much.
|
94
|
+
files.reject { |f| File.directory?(File.join(staging_path, f)) } \
|
95
|
+
.collect { |f| "/#{f}" } \
|
96
|
+
.collect { |f| f[/\s/] and "\"#{f}\"" or f } \
|
97
|
+
.join("\n")
|
98
|
+
%>
|
92
99
|
|
93
100
|
%changelog
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.0pre2
|
5
5
|
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-03-09 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &21926160 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *21926160
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: cabin
|
27
|
-
requirement: &
|
27
|
+
requirement: &21924700 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.4.2
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *21924700
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: backports
|
38
|
-
requirement: &
|
38
|
+
requirement: &21921940 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - =
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 2.3.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *21921940
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: arr-pm
|
49
|
-
requirement: &
|
49
|
+
requirement: &23174960 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *23174960
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rush
|
60
|
-
requirement: &
|
60
|
+
requirement: &23174500 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *23174500
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &23174080 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *23174080
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: insist
|
82
|
-
requirement: &
|
82
|
+
requirement: &23173660 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *23173660
|
91
91
|
description: Convert directories, rpms, python eggs, rubygems, and more to rpms, debs,
|
92
92
|
solaris packages and more. Win at package management without wasting pointless hours
|
93
93
|
debugging bad rpm specs!
|