fpm 0.1.9 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/fpm/builder.rb +2 -2
- data/lib/fpm/source.rb +1 -0
- data/lib/fpm/source/gem.rb +4 -1
- data/lib/fpm/source/npm.rb +35 -0
- data/lib/fpm/target/rpm.rb +5 -1
- data/templates/rpm.erb +18 -4
- metadata +6 -5
data/lib/fpm/builder.rb
CHANGED
@@ -94,7 +94,7 @@ class FPM::Builder
|
|
94
94
|
# TODO: [Jay] make this better.
|
95
95
|
private
|
96
96
|
def package_class_for(type)
|
97
|
-
type = FPM::Target::constants.find { |c| c.downcase == type }
|
97
|
+
type = FPM::Target::constants.find { |c| c.downcase.to_s == type }
|
98
98
|
if !type
|
99
99
|
raise ArgumentError, "unknown package type #{type.inspect}"
|
100
100
|
end
|
@@ -105,7 +105,7 @@ class FPM::Builder
|
|
105
105
|
# TODO: [Jay] make this better.
|
106
106
|
private
|
107
107
|
def source_class_for(type)
|
108
|
-
type = FPM::Source::constants.find { |c| c.downcase == type }
|
108
|
+
type = FPM::Source::constants.find { |c| c.downcase.to_s == type }
|
109
109
|
if !type
|
110
110
|
raise ArgumentError, "unknown package type #{type.inspect}"
|
111
111
|
end
|
data/lib/fpm/source.rb
CHANGED
data/lib/fpm/source/gem.rb
CHANGED
@@ -91,7 +91,10 @@ class FPM::Source::Gem < FPM::Source
|
|
91
91
|
args = ["gem", "install", "--quiet", "--no-ri", "--no-rdoc",
|
92
92
|
"--install-dir", installdir, "--ignore-dependencies", @paths.first]
|
93
93
|
system(*args)
|
94
|
-
|
94
|
+
|
95
|
+
@paths = [ ::Gem::dir ]
|
96
|
+
tar(tar_path, ".#{@paths.first}", tmpdir)
|
97
|
+
FileUtils.rm_r(tmpdir)
|
95
98
|
|
96
99
|
# TODO(sissel): Make a helper method.
|
97
100
|
system(*["gzip", "-f", tar_path])
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "fpm/namespace"
|
2
|
+
require "fpm/source"
|
3
|
+
require "fileutils"
|
4
|
+
|
5
|
+
class FPM::Source::Npm < FPM::Source
|
6
|
+
def get_source(params)
|
7
|
+
@npm = @paths.first
|
8
|
+
end # def get_source
|
9
|
+
|
10
|
+
def download(npm_name, version=nil)
|
11
|
+
end # def download
|
12
|
+
|
13
|
+
def get_metadata
|
14
|
+
# set self[:...] values
|
15
|
+
# :name
|
16
|
+
# :maintainer
|
17
|
+
# :url
|
18
|
+
# :category
|
19
|
+
# :dependencies
|
20
|
+
end # def get_metadata
|
21
|
+
|
22
|
+
def make_tarball!(tar_path, builddir)
|
23
|
+
tmpdir = "#{tar_path}.dir"
|
24
|
+
installdir = "#{tmpdir}/#{::Gem::dir}"
|
25
|
+
::FileUtils.mkdir_p(installdir)
|
26
|
+
args = ["gem", "install", "--quiet", "--no-ri", "--no-rdoc",
|
27
|
+
"--install-dir", installdir, "--ignore-dependencies", @paths.first]
|
28
|
+
system(*args)
|
29
|
+
tar(tar_path, ".", tmpdir)
|
30
|
+
|
31
|
+
# TODO(sissel): Make a helper method.
|
32
|
+
system(*["gzip", "-f", tar_path])
|
33
|
+
end
|
34
|
+
|
35
|
+
end # class FPM::Source::Gem
|
data/lib/fpm/target/rpm.rb
CHANGED
data/templates/rpm.erb
CHANGED
@@ -12,8 +12,22 @@ License: <%= @license %>
|
|
12
12
|
Source0: %{_sourcedir}/data.tar.gz
|
13
13
|
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
14
14
|
|
15
|
-
<% if
|
16
|
-
|
15
|
+
<% if !dependencies.empty? %>
|
16
|
+
<%
|
17
|
+
properdeps = dependencies.collect do |d|
|
18
|
+
# Convert gem ~> X.Y.Z to '>= X.Y.Z' and < X.Y+1.0
|
19
|
+
if d =~ /\~>/
|
20
|
+
name, version = d.gsub(/[()~>]/, "").split(/ +/)[0..1]
|
21
|
+
nextversion = version.split(".").collect { |v| v.to_i }
|
22
|
+
nextversion[1] += 1
|
23
|
+
nextversion[2] = 0
|
24
|
+
nextversion = nextversion.join(".")
|
25
|
+
["#{name} >= #{version}", "#{name} < #{nextversion}"]
|
26
|
+
else
|
27
|
+
d
|
28
|
+
end
|
29
|
+
end
|
30
|
+
%>Requires: <%= properdeps.join(", ") %>
|
17
31
|
<% end %>
|
18
32
|
|
19
33
|
%description
|
@@ -33,9 +47,9 @@ tar -zvxf %SOURCE0
|
|
33
47
|
%clean
|
34
48
|
rm -rf $RPM_BUILD_ROOT
|
35
49
|
|
36
|
-
|
37
50
|
%files
|
38
51
|
%defattr(-,root,root,-)
|
39
|
-
|
52
|
+
<%# Trim leading '.' from paths if they are './blah...' %>
|
53
|
+
<%= @source.paths.collect { |p| p.gsub(/^\.\//, "/") }.join("\n") %>
|
40
54
|
|
41
55
|
%changelog
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jordan Sissel
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01-
|
18
|
+
date: 2011-01-22 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -45,6 +45,7 @@ files:
|
|
45
45
|
- lib/fpm/builder.rb
|
46
46
|
- lib/fpm/namespace.rb
|
47
47
|
- lib/fpm/source.rb
|
48
|
+
- lib/fpm/source/npm.rb
|
48
49
|
- lib/fpm/source/dir.rb
|
49
50
|
- lib/fpm/source/rpm.rb
|
50
51
|
- lib/fpm/source/gem.rb
|