fpm 0.1.9 → 0.2.0
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/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
|