initial commit
[PackageFactory.git] / RpmSpec.rb
blobfd9309192b9c7a9933e8e48acae4d67023a288fa
1 require 'Package'
3 class RpmSpec
5         @spec = ''
7         def initialize(pkg)
8                 if not pkg.kind_of?(Package)
9                         fail 'RpmSpec: Argument is not a package'
10                 end
11                 @spec = createspec(pkg)
12         end
14         def createspec(pkg)
15                 s = "Name: %s\n" % pkg.name +
16                 "Version: %s\n" % pkg.version +
17                 "Release: %s\n" % pkg.release +
18                 "Summary: %s\n" % pkg.summary +
19                 "License: %s\n" % pkg.license +
20                 "Url: %s\n" % pkg.homepage +
21                 "Source: %s\n" % pkg.source +
22                 "BuildRoot: %s\n" % pkg.buildroot +
23                 "BuildRequires: %s\n" % pkg.depends.join(' ') +
24                 "Requires: %s\n\n" % pkg.rdepends.join(' ') +
25                 "%%description\n%s\n\n" % pkg.description +
26                 "%%prep\n%s\n\n" % pkg.prepare() +
27                 "%%build\n%s\n\n" % pkg.build() +
28                 "%%install\n%s\n\n" % pkg.install() +
29                 "%%clean\n%s\n\n" % pkg.clean()
31                 t = pkg.pre()
32                 s += "%%pre\n%s\n\n" % t if t != nil and t != ''
34                 t = pkg.post()
35                 s += "%%postun\n%s\n\n" % t if t != nil and t != ''
37                 t = pkg.preun()
38                 s += "%%preun\n%s\n\n" % t if t != nil and t != ''
40                 t = pkg.postun()
41                 s += "%%postun\n%s\n\n" % t if t != nil and t != ''
43                 s += "%%files\n%s\n\n" % pkg.files()
45                 s += "%%changelog\n%s\n\n" % pkg.changes().join()
47                 return s
48         end
50         def print()
51                 puts @spec
52         end
54 end