dpkg-tools 0.3.3
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/CHANGES +198 -0
- data/MIT-LICENSE +20 -0
- data/README +17 -0
- data/Rakefile +1 -0
- data/bin/dpkg-etc +6 -0
- data/bin/dpkg-gem +6 -0
- data/bin/dpkg-rails +6 -0
- data/lib/dpkg-tools.rb +6 -0
- data/lib/dpkg-tools/command_line.rb +142 -0
- data/lib/dpkg-tools/package.rb +30 -0
- data/lib/dpkg-tools/package/builder.rb +112 -0
- data/lib/dpkg-tools/package/config.rb +96 -0
- data/lib/dpkg-tools/package/control_files.rb +24 -0
- data/lib/dpkg-tools/package/control_files/base.rb +75 -0
- data/lib/dpkg-tools/package/control_files/changelog.rb +23 -0
- data/lib/dpkg-tools/package/control_files/control.rb +148 -0
- data/lib/dpkg-tools/package/control_files/copyright.rb +27 -0
- data/lib/dpkg-tools/package/control_files/rakefile.rb +28 -0
- data/lib/dpkg-tools/package/control_files/rules.rb +29 -0
- data/lib/dpkg-tools/package/data.rb +125 -0
- data/lib/dpkg-tools/package/etc.rb +26 -0
- data/lib/dpkg-tools/package/etc/builder.rb +19 -0
- data/lib/dpkg-tools/package/etc/control_files.rb +22 -0
- data/lib/dpkg-tools/package/etc/control_files/changelog.rb +30 -0
- data/lib/dpkg-tools/package/etc/control_files/rakefile.rb +18 -0
- data/lib/dpkg-tools/package/etc/data.rb +48 -0
- data/lib/dpkg-tools/package/etc/rake.rb +31 -0
- data/lib/dpkg-tools/package/etc/setup.rb +30 -0
- data/lib/dpkg-tools/package/fs_methods.rb +10 -0
- data/lib/dpkg-tools/package/gem.rb +43 -0
- data/lib/dpkg-tools/package/gem/builder.rb +77 -0
- data/lib/dpkg-tools/package/gem/control_files.rb +23 -0
- data/lib/dpkg-tools/package/gem/control_files/changelog.rb +19 -0
- data/lib/dpkg-tools/package/gem/control_files/copyright.rb +24 -0
- data/lib/dpkg-tools/package/gem/control_files/rakefile.rb +19 -0
- data/lib/dpkg-tools/package/gem/data.rb +115 -0
- data/lib/dpkg-tools/package/gem/gem_format.rb +10 -0
- data/lib/dpkg-tools/package/gem/rake.rb +37 -0
- data/lib/dpkg-tools/package/gem/setup.rb +159 -0
- data/lib/dpkg-tools/package/rails.rb +26 -0
- data/lib/dpkg-tools/package/rails/builder.rb +77 -0
- data/lib/dpkg-tools/package/rails/cap.rb +30 -0
- data/lib/dpkg-tools/package/rails/control_files.rb +22 -0
- data/lib/dpkg-tools/package/rails/control_files/changelog.rb +19 -0
- data/lib/dpkg-tools/package/rails/control_files/rakefile.rb +24 -0
- data/lib/dpkg-tools/package/rails/data.rb +160 -0
- data/lib/dpkg-tools/package/rails/rake.rb +40 -0
- data/lib/dpkg-tools/package/rails/setup.rb +84 -0
- data/lib/dpkg-tools/package/rake.rb +90 -0
- data/lib/dpkg-tools/package/setup.rb +145 -0
- data/lib/dpkg-tools/version.rb +23 -0
- data/spec/dpkg-tools/command_line_spec.rb +9 -0
- data/spec/dpkg-tools/package/builder_spec.rb +159 -0
- data/spec/dpkg-tools/package/config_spec.rb +150 -0
- data/spec/dpkg-tools/package/control_files/base_spec.rb +111 -0
- data/spec/dpkg-tools/package/control_files/changelog_spec.rb +22 -0
- data/spec/dpkg-tools/package/control_files/control_spec.rb +131 -0
- data/spec/dpkg-tools/package/control_files/copyright_spec.rb +29 -0
- data/spec/dpkg-tools/package/control_files/rakefile_spec.rb +37 -0
- data/spec/dpkg-tools/package/control_files/rules_spec.rb +16 -0
- data/spec/dpkg-tools/package/control_files_spec.rb +12 -0
- data/spec/dpkg-tools/package/data_spec.rb +115 -0
- data/spec/dpkg-tools/package/etc/builder_spec.rb +28 -0
- data/spec/dpkg-tools/package/etc/control_files/changelog_spec.rb +21 -0
- data/spec/dpkg-tools/package/etc/control_files/rakefile_spec.rb +16 -0
- data/spec/dpkg-tools/package/etc/control_files_spec.rb +12 -0
- data/spec/dpkg-tools/package/etc/data_spec.rb +74 -0
- data/spec/dpkg-tools/package/etc/rake_spec.rb +71 -0
- data/spec/dpkg-tools/package/etc/setup_spec.rb +62 -0
- data/spec/dpkg-tools/package/etc_spec.rb +39 -0
- data/spec/dpkg-tools/package/fs_methods_spec.rb +33 -0
- data/spec/dpkg-tools/package/gem/builder_spec.rb +84 -0
- data/spec/dpkg-tools/package/gem/control_files/changelog_spec.rb +25 -0
- data/spec/dpkg-tools/package/gem/control_files/copyright_spec.rb +28 -0
- data/spec/dpkg-tools/package/gem/control_files/rakefile_spec.rb +17 -0
- data/spec/dpkg-tools/package/gem/control_files_spec.rb +12 -0
- data/spec/dpkg-tools/package/gem/data_spec.rb +176 -0
- data/spec/dpkg-tools/package/gem/gem_format_spec.rb +26 -0
- data/spec/dpkg-tools/package/gem/rake_spec.rb +102 -0
- data/spec/dpkg-tools/package/gem/setup_spec.rb +274 -0
- data/spec/dpkg-tools/package/gem_spec.rb +68 -0
- data/spec/dpkg-tools/package/rails/builder_spec.rb +113 -0
- data/spec/dpkg-tools/package/rails/cap_spec.rb +37 -0
- data/spec/dpkg-tools/package/rails/control_files/changelog_spec.rb +25 -0
- data/spec/dpkg-tools/package/rails/control_files/rakefile_spec.rb +24 -0
- data/spec/dpkg-tools/package/rails/control_files_spec.rb +12 -0
- data/spec/dpkg-tools/package/rails/data_spec.rb +178 -0
- data/spec/dpkg-tools/package/rails/rake_spec.rb +78 -0
- data/spec/dpkg-tools/package/rails/setup_spec.rb +152 -0
- data/spec/dpkg-tools/package/rails_spec.rb +27 -0
- data/spec/dpkg-tools/package/rake_spec.rb +87 -0
- data/spec/dpkg-tools/package/setup_spec.rb +247 -0
- data/spec/dpkg-tools/package_spec.rb +34 -0
- data/spec/fixtures/BlueCloth-1.0.0.gem +1190 -0
- data/spec/fixtures/database.yml +33 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +52 -0
- data/tasks/dist.rake +118 -0
- data/tasks/rspec.rake +21 -0
- metadata +165 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module DpkgTools
|
|
2
|
+
module Package
|
|
3
|
+
module ControlFiles
|
|
4
|
+
class Copyright < DpkgTools::Package::ControlFiles::Base
|
|
5
|
+
class << self
|
|
6
|
+
def filename
|
|
7
|
+
'copyright'
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def formatter_class
|
|
11
|
+
CopyrightFormatter
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def license_file
|
|
16
|
+
data.license
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class CopyrightFormatter < DpkgTools::Package::ControlFiles::BaseFormatter
|
|
21
|
+
def build
|
|
22
|
+
metadata.license_file
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module DpkgTools
|
|
2
|
+
module Package
|
|
3
|
+
module ControlFiles
|
|
4
|
+
class Rakefile < DpkgTools::Package::ControlFiles::Base
|
|
5
|
+
class << self
|
|
6
|
+
def filename
|
|
7
|
+
nil
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def formatter_class
|
|
11
|
+
RakefileFormatter
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def file_path
|
|
16
|
+
base_method, filename = @data.rakefile_location
|
|
17
|
+
File.join(@config.send(base_method), filename)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class RakefileFormatter < DpkgTools::Package::ControlFiles::BaseFormatter
|
|
22
|
+
def build
|
|
23
|
+
metadata.rakefile
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module DpkgTools
|
|
2
|
+
module Package
|
|
3
|
+
module ControlFiles
|
|
4
|
+
class Rules < DpkgTools::Package::ControlFiles::Base
|
|
5
|
+
class << self
|
|
6
|
+
def filename
|
|
7
|
+
'rules'
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def formatter_class
|
|
11
|
+
RulesFormatter
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def executable?
|
|
16
|
+
true
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class RulesFormatter < DpkgTools::Package::ControlFiles::BaseFormatter
|
|
21
|
+
def build
|
|
22
|
+
"#!/bin/sh\n" \
|
|
23
|
+
"\n" \
|
|
24
|
+
"/usr/bin/rake $@\n" \
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
module DpkgTools
|
|
2
|
+
module Package
|
|
3
|
+
class DebYAMLParseError < StandardError; end
|
|
4
|
+
|
|
5
|
+
class Data
|
|
6
|
+
module YamlConfigHelpers
|
|
7
|
+
# Should be overridden by subclasses to return a list of base (i.e. always required,
|
|
8
|
+
# don't need to be specified) gem dependencies. Should return an array of hashes
|
|
9
|
+
# of the form {:name => 'rails-rubygem', :requirements => ['>= 1.2.5-1']}
|
|
10
|
+
def base_gem_deps
|
|
11
|
+
[]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Should be overridden by subclasses to return a list of base (i.e. always required,
|
|
15
|
+
# don't need to be specified) dpkg package dependencies. Should return an array of hashes
|
|
16
|
+
# of the form {:name => 'mysql-server', :requirements => ['>= 1.2.5-1']}
|
|
17
|
+
def base_package_deps
|
|
18
|
+
[]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def package_data_file_path(base_path, filename)
|
|
22
|
+
File.join(base_path, filename)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def load_package_data(base_path, filename)
|
|
26
|
+
file_path = package_data_file_path(base_path, filename)
|
|
27
|
+
YAML.load_file(file_path) if File.exist?(file_path)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def process_dependencies(data)
|
|
31
|
+
all_deps = base_gem_deps + base_package_deps
|
|
32
|
+
if data.has_key?('dependencies') && !data['dependencies'].empty?
|
|
33
|
+
raise DebYAMLParseError, "dependencies: is not a collection of items!" unless data['dependencies'].kind_of?(Hash)
|
|
34
|
+
all_deps += process_dependencies_by_type(data['dependencies'], 'gem', 'rubygem') {|req| "#{req}-1"}
|
|
35
|
+
all_deps += process_dependencies_by_type(data['dependencies'], 'package')
|
|
36
|
+
end
|
|
37
|
+
all_deps
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def process_dependencies_by_type(dependencies, dependency_type, suffix = nil)
|
|
41
|
+
processed_dependencies = []
|
|
42
|
+
if dependencies.has_key?(dependency_type)
|
|
43
|
+
unless dependencies[dependency_type].kind_of?(Array) || dependencies[dependency_type].nil?
|
|
44
|
+
raise DebYAMLParseError, "dependencies: #{dependency_type}: is not a list of items!"
|
|
45
|
+
end
|
|
46
|
+
unless dependencies[dependency_type].nil?
|
|
47
|
+
dependencies[dependency_type].each do |dependency|
|
|
48
|
+
name = dependency.kind_of?(Hash) ? dependency.keys.first : dependency
|
|
49
|
+
requirements = dependency.kind_of?(Hash) ? dependency.values.first : nil
|
|
50
|
+
unless requirements.kind_of?(Array) || requirements.kind_of?(String) || requirements.nil?
|
|
51
|
+
raise DebYAMLParseError, "The #{dependency_type} dependency #{name}'s version requirements MUST be either a list of items, or a single item!"
|
|
52
|
+
end
|
|
53
|
+
requirements = [requirements] if requirements.kind_of?(String)
|
|
54
|
+
requirements.collect! { |req| yield(req) } if block_given?
|
|
55
|
+
processed_dependencies << {:name => "#{name}#{"-"+ suffix unless suffix.nil?}", :requirements => requirements}
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
processed_dependencies
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
class << self
|
|
64
|
+
def resources_dirname
|
|
65
|
+
'data'
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def resources_path
|
|
69
|
+
dirs_to_climb_up = Array.new(File.expand_path(File.dirname(__FILE__)).split('/').reverse.index('lib') + 1).collect { '..' }
|
|
70
|
+
File.expand_path(File.join(File.dirname(__FILE__), dirs_to_climb_up, 'resources', self.resources_dirname))
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def name
|
|
75
|
+
"name"
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def version
|
|
79
|
+
"1.0.0"
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def full_name
|
|
83
|
+
"#{name}-#{version}"
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def debian_revision
|
|
87
|
+
"1"
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def debian_arch
|
|
91
|
+
"all"
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def architecture_independent?
|
|
95
|
+
debian_arch == 'all'
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def dependencies
|
|
99
|
+
[{:name => "dep-name", :requirements => [">= 1.0.0"]}]
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def build_dependencies
|
|
103
|
+
[{:name => "dep-name", :requirements => [">= 1.0.0"]}]
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def summary
|
|
107
|
+
"Summary description"
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def license
|
|
111
|
+
"MIT License text"
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def rakefile_location
|
|
115
|
+
[:base_path, 'Rakefile']
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def resources_path
|
|
119
|
+
self.class.resources_path
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
public :binding
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require 'dpkg-tools/package/etc/data'
|
|
2
|
+
require 'dpkg-tools/package/etc/setup'
|
|
3
|
+
require 'dpkg-tools/package/etc/builder'
|
|
4
|
+
require 'dpkg-tools/package/etc/control_files'
|
|
5
|
+
require 'dpkg-tools/package/etc/rake'
|
|
6
|
+
|
|
7
|
+
module DpkgTools
|
|
8
|
+
module Package
|
|
9
|
+
module Etc
|
|
10
|
+
class << self
|
|
11
|
+
def create_builder(path_to_app)
|
|
12
|
+
Builder.from_path(path_to_app)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def create_setup(path_to_app)
|
|
16
|
+
Setup.from_path(path_to_app)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def setup_from_path(path_to_app)
|
|
20
|
+
Dir.mkdir(path_to_app) unless File.directory?(path_to_app)
|
|
21
|
+
create_setup(path_to_app).create_structure
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module DpkgTools
|
|
2
|
+
module Package
|
|
3
|
+
module Etc
|
|
4
|
+
class Builder < DpkgTools::Package::Builder
|
|
5
|
+
def config_options
|
|
6
|
+
{:base_path => data.base_path}
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def create_install_dirs
|
|
10
|
+
create_dir_if_needed(config.etc_install_path)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def install_package_files
|
|
14
|
+
FileUtils.cp_r(config.base_path + '/etc', config.etc_install_path)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'dpkg-tools/package/etc/control_files/changelog'
|
|
2
|
+
require 'dpkg-tools/package/etc/control_files/rakefile'
|
|
3
|
+
|
|
4
|
+
module DpkgTools
|
|
5
|
+
module Package
|
|
6
|
+
module Etc
|
|
7
|
+
module ControlFiles
|
|
8
|
+
class << self
|
|
9
|
+
def classes
|
|
10
|
+
[
|
|
11
|
+
DpkgTools::Package::Etc::ControlFiles::Changelog,
|
|
12
|
+
DpkgTools::Package::ControlFiles::Control,
|
|
13
|
+
DpkgTools::Package::ControlFiles::Copyright,
|
|
14
|
+
DpkgTools::Package::Etc::ControlFiles::Rakefile,
|
|
15
|
+
DpkgTools::Package::ControlFiles::Rules
|
|
16
|
+
]
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'time'
|
|
2
|
+
|
|
3
|
+
module DpkgTools
|
|
4
|
+
module Package
|
|
5
|
+
module Etc
|
|
6
|
+
module ControlFiles
|
|
7
|
+
class Changelog < DpkgTools::Package::ControlFiles::Changelog
|
|
8
|
+
def changelog
|
|
9
|
+
changelog_yaml = YAML::load_file(config.base_path + '/changelog.yml')
|
|
10
|
+
changelog_entries = []
|
|
11
|
+
changelog_yaml.each do |change|
|
|
12
|
+
change_lines = []
|
|
13
|
+
change_lines << "#{config.package_name} (#{change['version']}-1) cp-gutsy; urgency=low"
|
|
14
|
+
change['changes'].each do |lines|
|
|
15
|
+
lines = lines.split("\n")
|
|
16
|
+
# first line is different to the others
|
|
17
|
+
change_lines << " * " + lines.shift
|
|
18
|
+
lines.each { |line| change_lines << " " + line }
|
|
19
|
+
end
|
|
20
|
+
change_lines << " -- Matt Patterson <matt@reprocessed.org> #{Time.xmlschema(change['date']).rfc822}"
|
|
21
|
+
changelog_entries << change_lines.join("\n")
|
|
22
|
+
end
|
|
23
|
+
changelog_entries << "" # for that final newline
|
|
24
|
+
changelog_entries.join("\n")
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module DpkgTools
|
|
2
|
+
module Package
|
|
3
|
+
module Etc
|
|
4
|
+
module ControlFiles
|
|
5
|
+
class Rakefile < DpkgTools::Package::ControlFiles::Rakefile
|
|
6
|
+
def rakefile
|
|
7
|
+
"require 'rubygems'\n" \
|
|
8
|
+
"require 'dpkg-tools'\n" \
|
|
9
|
+
"\n" \
|
|
10
|
+
"DpkgTools::Package::Etc::BuildTasks.new do |t|\n" \
|
|
11
|
+
" t.base_path = Rake.original_dir\n" \
|
|
12
|
+
"end\n"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
module DpkgTools
|
|
2
|
+
module Package
|
|
3
|
+
module Etc
|
|
4
|
+
class Data < DpkgTools::Package::Data
|
|
5
|
+
class << self
|
|
6
|
+
include DpkgTools::Package::Data::YamlConfigHelpers
|
|
7
|
+
|
|
8
|
+
def resources_dirname
|
|
9
|
+
'etc'
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
attr_reader :config, :base_path
|
|
14
|
+
|
|
15
|
+
def initialize(base_path)
|
|
16
|
+
@data = self.class.load_package_data(base_path, 'deb.yml')
|
|
17
|
+
|
|
18
|
+
@dependencies = self.class.process_dependencies(@data)
|
|
19
|
+
@base_path = base_path
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def name
|
|
23
|
+
@data['name']
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def version
|
|
27
|
+
@data['version']
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def license
|
|
31
|
+
@data['license']
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def dependencies
|
|
35
|
+
@dependencies
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def build_dependencies
|
|
39
|
+
@dependencies
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def summary
|
|
43
|
+
@data['summary']
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module DpkgTools
|
|
2
|
+
module Package
|
|
3
|
+
module Etc
|
|
4
|
+
class BuildTasks < DpkgTools::Package::BuildTasks
|
|
5
|
+
attr_accessor :base_path
|
|
6
|
+
|
|
7
|
+
def check_setup
|
|
8
|
+
raise ArgumentError, "Needs to have base_path set" unless @base_path
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def create_builder
|
|
12
|
+
DpkgTools::Package::Etc.create_builder(@base_path)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def create_setup
|
|
16
|
+
DpkgTools::Package::Etc.create_setup(@base_path)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def define_tasks
|
|
20
|
+
task "binary-arch" do
|
|
21
|
+
create_builder.binary_package
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
task "binary-indep" do
|
|
25
|
+
create_builder.binary_package
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module DpkgTools
|
|
2
|
+
module Package
|
|
3
|
+
module Etc
|
|
4
|
+
class Setup < DpkgTools::Package::Setup
|
|
5
|
+
class << self
|
|
6
|
+
def data_class
|
|
7
|
+
DpkgTools::Package::Etc::Data
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def bootstrap_files
|
|
11
|
+
['deb.yml', 'changelog.yml']
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def control_file_classes
|
|
16
|
+
DpkgTools::Package::Etc::ControlFiles.classes
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def config_options
|
|
20
|
+
{:base_path => @data.base_path}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def prepare_package
|
|
24
|
+
etc_path = @config.base_path + '/etc'
|
|
25
|
+
Dir.mkdir(etc_path) unless File.directory?(etc_path)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|