puppet 3.0.0 → 3.0.1.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (70) hide show
  1. data/Rakefile +24 -19
  2. data/bin/puppet +0 -6
  3. data/examples/modules/{sample-module.pp → sample_module.pp} +1 -1
  4. data/examples/modules/{sample-module → sample_module}/lib/puppet/parser/functions/hostname_to_dn.rb +0 -0
  5. data/examples/modules/{sample-module → sample_module}/manifests/init.pp +1 -1
  6. data/examples/modules/{sample-module → sample_module}/templates/sample.erb +0 -0
  7. data/ext/debian/puppetmaster.README.debian +1 -2
  8. data/ext/debian/puppetmaster.default +1 -28
  9. data/ext/debian/puppetmaster.init +49 -70
  10. data/ext/project_data.yaml +2 -2
  11. data/ext/rack/README +0 -15
  12. data/ext/rack/files/config.ru +4 -2
  13. data/ext/redhat/logrotate +1 -1
  14. data/ext/redhat/server.init +34 -49
  15. data/ext/redhat/server.sysconfig +2 -20
  16. data/ext/suse/client.init +10 -9
  17. data/ext/suse/puppet.spec +12 -25
  18. data/ext/suse/server.init +25 -15
  19. data/ext/windows/service/daemon.bat +1 -1
  20. data/ext/windows/service/daemon.rb +1 -1
  21. data/lib/puppet.rb +0 -6
  22. data/lib/puppet/application/agent.rb +1 -0
  23. data/lib/puppet/defaults.rb +2 -9
  24. data/lib/puppet/feature/eventlog.rb +0 -1
  25. data/lib/puppet/feature/rack.rb +1 -6
  26. data/lib/puppet/feature/rails.rb +0 -2
  27. data/lib/puppet/feature/rubygems.rb +5 -1
  28. data/lib/puppet/feature/ssh.rb +0 -1
  29. data/lib/puppet/feature/stomp.rb +0 -1
  30. data/lib/puppet/feature/zlib.rb +0 -1
  31. data/lib/puppet/network/http/rack/rest.rb +4 -1
  32. data/lib/puppet/rails/inventory_node.rb +26 -13
  33. data/lib/puppet/run.rb +1 -1
  34. data/lib/puppet/settings.rb +12 -7
  35. data/lib/puppet/util/command_line.rb +11 -0
  36. data/lib/puppet/util/rubygems.rb +7 -6
  37. data/lib/puppet/util/run_mode.rb +12 -11
  38. data/lib/puppet/util/zaml.rb +1 -1
  39. data/lib/puppet/version.rb +1 -1
  40. data/man/man5/puppet.conf.5 +4 -4
  41. data/spec/integration/defaults_spec.rb +4 -4
  42. data/spec/unit/network/http/rack/rest_spec.rb +13 -0
  43. data/spec/unit/run_spec.rb +11 -5
  44. data/spec/unit/util/rubygems_spec.rb +4 -2
  45. data/spec/unit/util/run_mode_spec.rb +9 -0
  46. data/spec/unit/util/zaml_spec.rb +53 -25
  47. metadata +2189 -2210
  48. data/examples/modules/sample-module/README.txt +0 -17
  49. data/ext/packaging/README-Solaris.md +0 -117
  50. data/ext/packaging/README.md +0 -89
  51. data/ext/packaging/tasks/00_utils.rb +0 -290
  52. data/ext/packaging/tasks/10_setupvars.rake +0 -64
  53. data/ext/packaging/tasks/apple.rake +0 -201
  54. data/ext/packaging/tasks/clean.rake +0 -5
  55. data/ext/packaging/tasks/deb.rake +0 -103
  56. data/ext/packaging/tasks/gem.rake +0 -55
  57. data/ext/packaging/tasks/ips.rake +0 -80
  58. data/ext/packaging/tasks/mock.rake +0 -88
  59. data/ext/packaging/tasks/release.rake +0 -56
  60. data/ext/packaging/tasks/rpm.rake +0 -39
  61. data/ext/packaging/tasks/ship.rake +0 -36
  62. data/ext/packaging/tasks/sign.rake +0 -79
  63. data/ext/packaging/tasks/tag.rake +0 -8
  64. data/ext/packaging/tasks/tar.rake +0 -20
  65. data/ext/packaging/tasks/version.rake +0 -20
  66. data/ext/suse/fileserver.conf +0 -12
  67. data/ext/suse/logrotate +0 -10
  68. data/ext/suse/puppet.conf +0 -25
  69. data/lib/puppet/network/http/mongrel/rest.rb +0 -104
  70. data/spec/integration/network/server/mongrel_spec.rb +0 -64
@@ -1,64 +0,0 @@
1
- require 'yaml'
2
- require 'erb'
3
-
4
- begin
5
- @project_specs ||= YAML.load_file('ext/project_data.yaml')
6
- @name = @project_specs['project']
7
- @author = @project_specs['author']
8
- @email = @project_specs['email']
9
- @homepage = @project_specs['homepage']
10
- @summary = @project_specs['summary']
11
- @description = @project_specs['description']
12
- @files = @project_specs['files']
13
- @version_file = @project_specs['version_file']
14
- @gem_files = @project_specs['gem_files']
15
- @gem_require_path = @project_specs['gem_require_path']
16
- @gem_test_files = @project_specs['gem_test_files']
17
- @gem_executables = @project_specs['gem_executables']
18
- @gem_runtime_dependencies = @project_specs['gem_runtime_dependencies']
19
- @gem_devel_dependencies = @project_specs['gem_devel_dependencies']
20
- @gem_rdoc_options = @project_specs['gem_rdoc_options']
21
- @gem_forge_project = @project_specs['gem_forge_project']
22
- rescue
23
- STDERR.puts "There was an error loading the project specifications from the 'ext/project_data.yaml' file."
24
- exit 1
25
- end
26
-
27
- begin
28
- @pkg_defaults ||= YAML.load_file('ext/build_defaults.yaml')
29
- @sign_tar = boolean_value( ENV['SIGN_TAR'] || @pkg_defaults['sign_tar'] )
30
- @build_gem = boolean_value( ENV['GEM'] || @pkg_defaults['build_gem'] )
31
- @build_dmg = boolean_value( ENV['DMG'] || @pkg_defaults['build_dmg'] )
32
- @build_ips = boolean_value( ENV['IPS'] || @pkg_defaults['build_ips'] )
33
- @default_cow = ENV['COW'] || @pkg_defaults['default_cow']
34
- @cows = ENV['COW'] || @pkg_defaults['cows']
35
- @pbuild_conf = ENV['PBUILDCONF'] || @pkg_defaults['pbuild_conf']
36
- @packager = ENV['PACKAGER'] || @pkg_defaults['packager']
37
- @final_mocks = ENV['MOCK'] || @pkg_defaults['final_mocks']
38
- @rc_mocks = ENV['MOCK'] || @pkg_defaults['rc_mocks']
39
- @gpg_name = ENV['GPG_NAME'] || @pkg_defaults['gpg_name']
40
- @gpg_key = ENV['GPG_KEY'] || @pkg_defaults['gpg_key']
41
- @certificate_pem = ENV['CERT_PEM'] || @pkg_defaults['certificate_pem']
42
- @privatekey_pem = ENV['PRIVATE_PEM'] || @pkg_defaults['privatekey_pem']
43
- @yum_host = @pkg_defaults['yum_host']
44
- @yum_repo_path = @pkg_defaults['yum_repo_path']
45
- @apt_host = @pkg_defaults['apt_host']
46
- @apt_repo_url = @pkg_defaults['apt_repo_url']
47
- @apt_repo_path = @pkg_defaults['apt_repo_path']
48
- @ips_repo = @pkg_defaults['ips_repo']
49
- @ips_store = @pkg_defaults['ips_store']
50
- @ips_host = @pkg_defaults['ips_host']
51
- rescue
52
- STDERR.puts "There was an error loading the packaging defaults from the 'ext/build_defaults.yaml' file."
53
- exit 1
54
- end
55
-
56
- @build_root ||= Dir.pwd
57
- @version ||= get_dash_version
58
- @gemversion ||= get_dot_version
59
- @ipsversion ||= get_ips_version
60
- @debversion ||= get_debversion
61
- @origversion ||= get_origversion
62
- @rpmversion ||= get_rpmversion
63
- @rpmrelease ||= get_rpmrelease
64
- @keychain_loaded ||= FALSE
@@ -1,201 +0,0 @@
1
- # Title: Rake task to build Apple packages for #{@name}.
2
- # Author: Gary Larizza
3
- # Date: 05/18/2012
4
- # Description: This task will create a DMG-encapsulated package that will
5
- # install a package on OS X systems. This happens by building
6
- # a directory tree of files that will then be fed to the
7
- # packagemaker binary (can be installed by installing the
8
- # XCode Tools) which will create the .pkg file.
9
- #
10
-
11
- # Path to Binaries (Constants)
12
- TAR = '/usr/bin/tar'
13
- CP = '/bin/cp'
14
- INSTALL = '/usr/bin/install'
15
- DITTO = '/usr/bin/ditto'
16
- PACKAGEMAKER = '/Developer/usr/bin/packagemaker'
17
- SED = '/usr/bin/sed'
18
-
19
- # Setup task to populate all the variables
20
- task :setup do
21
- # Read the Apple file-mappings
22
- begin
23
- @source_files = YAML.load_file('ext/osx/file_mapping.yaml')
24
- rescue
25
- STDERR.puts "Could not load Apple file mappings from 'ext/osx/file_mapping.yaml'"
26
- exit 1
27
- end
28
- @package_name = @name
29
- @title = "#{@name}-#{@version}"
30
- @reverse_domain = "com.#{@packager}.#{@package_name}"
31
- @package_major_version = @version.split('.')[0]
32
- @package_minor_version = @version.split('.')[1] +
33
- @version.split('.')[2].split('-')[0].split('rc')[0]
34
- @pm_restart = 'None'
35
- @build_date = Time.new.strftime("%Y-%m-%dT%H:%M:%SZ")
36
- @apple_bindir = '/usr/bin'
37
- @apple_sbindir = '/usr/sbin'
38
- @apple_libdir = '/usr/lib/ruby/site_ruby/1.8'
39
- @apple_docdir = '/usr/share/doc'
40
- end
41
-
42
- # method: make_directory_tree
43
- # description: This method sets up the directory structure that packagemaker
44
- # needs to build a package. A prototype.plist file (holding
45
- # package-specific options) is built from an ERB template located
46
- # in the ext/osx directory.
47
- def make_directory_tree
48
- project_tmp = "#{get_temp}/#{@package_name}"
49
- @scratch = "#{project_tmp}/#{@title}"
50
- @working_tree = {
51
- 'scripts' => "#{@scratch}/scripts",
52
- 'resources' => "#{@scratch}/resources",
53
- 'working' => "#{@scratch}/root",
54
- 'payload' => "#{@scratch}/payload",
55
- }
56
- puts "Cleaning Tree: #{project_tmp}"
57
- rm_rf(project_tmp)
58
- @working_tree.each do |key,val|
59
- mkdir_p(val)
60
- end
61
-
62
- erb 'ext/osx/preflight.erb', "#{@working_tree["scripts"]}/preflight"
63
- erb 'ext/osx/prototype.plist.erb', "#{@scratch}/prototype.plist"
64
-
65
- end
66
-
67
- # method: build_dmg
68
- # description: This method builds a package from the directory structure in
69
- # /tmp/#{@name} and puts it in the
70
- # /tmp/#{@name}/#{@name}-#{version}/payload directory. A DMG is
71
- # created, using hdiutil, based on the contents of the
72
- # /tmp/#{@name}/#{@name}-#{version}/payload directory. The resultant
73
- # DMG is placed in the pkg/apple directory.
74
- #
75
- def build_dmg
76
- # Local Variables
77
- dmg_format_code = 'UDZO'
78
- zlib_level = '9'
79
- dmg_format_option = "-imagekey zlib-level=#{zlib_level}"
80
- dmg_format = "#{dmg_format_code} #{dmg_format_option}"
81
- dmg_file = "#{@title}.dmg"
82
- package_file = "#{@title}.pkg"
83
- pm_extra_args = '--verbose --no-recommend --no-relocate'
84
- package_target_os = '10.4'
85
-
86
- # Build .pkg file
87
- system("sudo #{PACKAGEMAKER} --root #{@working_tree['working']} \
88
- --id #{@reverse_domain} \
89
- --filter DS_Store \
90
- --target #{package_target_os} \
91
- --title #{@title} \
92
- --info #{@scratch}/prototype.plist \
93
- --scripts #{@working_tree['scripts']} \
94
- --resources #{@working_tree['resources']} \
95
- --version #{@version} \
96
- #{pm_extra_args} --out #{@working_tree['payload']}/#{package_file}")
97
-
98
- # Build .dmg file
99
- system("sudo hdiutil create -volname #{@title} \
100
- -srcfolder #{@working_tree['payload']} \
101
- -uid 99 \
102
- -gid 99 \
103
- -ov \
104
- -format #{dmg_format} \
105
- #{dmg_file}")
106
-
107
- if File.directory?("#{pwd}/pkg/apple")
108
- mv("#{pwd}/#{dmg_file}", "#{pwd}/pkg/apple/#{dmg_file}")
109
- puts "moved: #{dmg_file} has been moved to #{pwd}/pkg/apple/#{dmg_file}"
110
- else
111
- mkdir_p("#{pwd}/pkg/apple")
112
- mv(dmg_file, "#{pwd}/pkg/apple/#{dmg_file}")
113
- puts "moved: #{dmg_file} has been moved to #{pwd}/pkg/apple/#{dmg_file}"
114
- end
115
- end
116
-
117
- # method: pack_source
118
- # description: This method copies the #{@name} source into a directory
119
- # structure in /tmp/#{@name}/#{@name}-#{version}/root mirroring the
120
- # structure on the target system for which the package will be
121
- # installed. Anything installed into /tmp/#{@name}/root will be
122
- # installed as the package's payload.
123
- #
124
- def pack_source
125
- work = "#{@working_tree['working']}"
126
- source = pwd
127
-
128
- # Make all necessary directories
129
- @source_files.each_value do |files|
130
- files.each_value do |params|
131
- mkdir_p "#{work}/#{params['path']}"
132
- end
133
- end
134
-
135
- # Install directory contents into place
136
- unless @source_files['directories'].nil?
137
- @source_files['directories'].each do |dir, params|
138
- unless FileList["#{source}/#{dir}/*"].empty?
139
- cmd = "#{DITTO} #{source}/#{dir}/ #{work}/#{params['path']}"
140
- puts cmd
141
- system(cmd)
142
- end
143
- end
144
- end
145
-
146
- # Setup a preflight script and replace variables in the files with
147
- # the correct paths.
148
- chown('root', 'wheel', "#{@working_tree['scripts']}/preflight")
149
- chmod(0644, "#{@working_tree['scripts']}/preflight")
150
-
151
- # Do a run through first setting the specified permissions then
152
- # making sure 755 is set for all directories
153
- unless @source_files['directories'].nil?
154
- @source_files['directories'].each do |dir, params|
155
- owner = params['owner']
156
- group = params['group']
157
- perms = params['perms']
158
- path = params['path']
159
- chmod_R(Integer(perms), "#{work}/#{path}")
160
- chown_R(owner, group, "#{work}/#{path}")
161
- chmod(0755, "#{work}/#{path}")
162
- Dir["#{work}/#{path}/**/*"].each do |file|
163
- chmod(0755, file) if File.directory?(file)
164
- end
165
- end
166
- end
167
-
168
- # Install any files
169
- unless @source_files['files'].nil?
170
- @source_files['files'].each do |file, params|
171
- owner = params['owner']
172
- group = params['group']
173
- perms = params['perms']
174
- dest = params['path']
175
- # Allow for regexs like [A-Z]*
176
- FileList[file].each do |file|
177
- cmd = "#{INSTALL} -o #{owner} -g #{group} -m #{perms} #{source}/#{file} #{work}/#{dest}"
178
- puts cmd
179
- system(cmd)
180
- end
181
- end
182
- end
183
- end
184
-
185
- if @build_dmg
186
- namespace :package do
187
- desc "Task for building an Apple Package"
188
- task :apple => [:setup] do
189
- # Test for Root and Packagemaker binary
190
- raise "Please run rake as root to build Apple Packages" unless Process.uid == 0
191
- raise "Packagemaker must be installed. Please install XCode Tools" unless \
192
- File.exists?('/Developer/usr/bin/packagemaker')
193
-
194
- make_directory_tree
195
- pack_source
196
- build_dmg
197
- chmod_R(0775, "#{pwd}/pkg")
198
- end
199
- end
200
- end
201
-
@@ -1,5 +0,0 @@
1
- desc "Clean all built packages, eg rm -rf pkg"
2
- task :clean do
3
- rm_rf 'pkg'
4
- end
5
-
@@ -1,103 +0,0 @@
1
- def pdebuild args
2
- results_dir = args[:work_dir]
3
- cow = args[:cow]
4
- devel_repo = args[:devel]
5
- set_cow_envs(cow)
6
- begin
7
- sh "pdebuild --configfile #{@pbuild_conf} --buildresult #{results_dir} --pbuilder cowbuilder -- --override-config --othermirror=\"deb #{@apt_repo_url} #{ENV['DIST']} main dependencies #{devel_repo}\" --basepath /var/cache/pbuilder/#{cow}/"
8
- rescue Exception => e
9
- puts e
10
- handle_method_failure('pdebuild', args)
11
- end
12
- end
13
-
14
- def update_cow(cow, is_rc = nil)
15
- ENV['FOSS_DEVEL'] = is_rc
16
- ENV['PATH'] = "/usr/sbin:#{ENV['PATH']}"
17
- set_cow_envs(cow)
18
- begin
19
- sh "sudo -E /usr/sbin/cowbuilder --update --override-config --configfile #{@pbuild_conf} --basepath /var/cache/pbuilder/#{cow} --distribution #{ENV['DIST']} --architecture #{ENV['ARCH']}"
20
- rescue
21
- STDERR.puts "Couldn't update the cow #{cow}. Perhaps you don't have sudo?"
22
- exit 1
23
- end
24
- end
25
-
26
- def debuild args
27
- results_dir = args[:work_dir]
28
- begin
29
- sh "debuild --no-lintian -uc -us"
30
- rescue
31
- STDERR.puts "Something went wrong. Hopefully the backscroll or #{results_dir}/#{@name}_#{@debversion}.build file has a clue."
32
- exit 1
33
- end
34
- end
35
-
36
- task :prep_deb_tars, :work_dir do |t,args|
37
- work_dir = args.work_dir
38
- cp_p "pkg/#{@name}-#{@version}.tar.gz", work_dir
39
- cd work_dir do
40
- sh "tar zxf #{@name}-#{@version}.tar.gz"
41
- mv "#{@name}-#{@version}", "#{@name}-#{@debversion}"
42
- mv "#{@name}-#{@version}.tar.gz", "#{@name}_#{@origversion}.orig.tar.gz"
43
- end
44
- end
45
-
46
- task :build_deb, :deb_command, :cow, :devel do |t,args|
47
- deb_build = args.deb_command
48
- cow = args.cow
49
- devel = args.devel
50
- work_dir = get_temp
51
- dest_dir = "#{@build_root}/pkg/deb/#{cow.split('-')[1] unless cow.nil?}"
52
- check_tool(deb_build)
53
- update_cow(cow, devel)
54
- mkdir_p dest_dir
55
- deb_args = { :work_dir => work_dir, :cow => cow, :devel => devel}
56
- Rake::Task[:prep_deb_tars].reenable
57
- Rake::Task[:prep_deb_tars].invoke(work_dir)
58
- cd "#{work_dir}/#{@name}-#{@debversion}" do
59
- mv 'ext/debian', '.'
60
- send(deb_build, deb_args)
61
- cp FileList["#{work_dir}/*.deb", "#{work_dir}/*.dsc", "#{work_dir}/*.changes", "#{work_dir}/*.debian.tar.gz", "#{work_dir}/*.orig.tar.gz"], dest_dir
62
- rm_rf "#{work_dir}/#{@name}-#{@debversion}"
63
- rm_rf work_dir
64
- end
65
- end
66
-
67
- namespace :package do
68
- desc "Create a deb from this repo, using debuild (all builddeps must be installed)"
69
- task :deb => :tar do
70
- Rake::Task[:build_deb].invoke('debuild')
71
- end
72
- end
73
-
74
- namespace :pl do
75
- desc "Create a deb from this repo using the default cow #{@default_cow}."
76
- task :deb => "package:tar" do
77
- Rake::Task[:build_deb].invoke('pdebuild', @default_cow)
78
- end
79
-
80
- desc "Create an RC deb from this repo using the default cow #{@default_cow}."
81
- task :deb_rc => "package:tar" do
82
- Rake::Task[:build_deb].invoke('pdebuild', @default_cow, 'devel')
83
- end
84
-
85
- desc "Create debs from this git repository using all cows specified in build_defaults yaml"
86
- task :deb_all do
87
- @cows.split(' ').each do |cow|
88
- Rake::Task["package:tar"].invoke
89
- Rake::Task[:build_deb].reenable
90
- Rake::Task[:build_deb].invoke('pdebuild', cow)
91
- end
92
- end
93
-
94
- desc "Create RC debs from this git repository using all cows specified in build_defaults yaml"
95
- task :deb_all_rc do
96
- @cows.split(' ').each do |cow|
97
- Rake::Task["package:tar"].invoke
98
- Rake::Task[:build_deb].reenable
99
- Rake::Task[:build_deb].invoke('pdebuild', cow, 'devel')
100
- end
101
- end
102
- end
103
-
@@ -1,55 +0,0 @@
1
- if @build_gem
2
- require 'rubygems/package_task'
3
-
4
- def glob_gem_files
5
- gem_files = []
6
- files = FileList[@gem_files.split(' ')]
7
- files.each do |file|
8
- if File.directory?(file)
9
- gem_files << FileList["#{file}/**/*"].exclude("ext/packaging/")
10
- else
11
- gem_files << file
12
- end
13
- end
14
- gem_files
15
- end
16
-
17
- spec = Gem::Specification.new do |s|
18
- s.name = @name unless @name.nil?
19
- s.version = @gemversion unless @gemversion.nil?
20
- s.author = @author unless @author.nil?
21
- s.email = @email unless @email.nil?
22
- s.homepage = @homepage unless @homepage.nil?
23
- s.summary = @summary unless @summary.nil?
24
- s.description = @description unless @description.nil?
25
- s.files = glob_gem_files unless glob_gem_files.nil?
26
- s.executables = @gem_executables unless @gem_executables.nil?
27
- s.require_path = @gem_require_path unless @gem_require_path.nil?
28
- s.test_files = FileList[@gem_test_files.split(' ')] unless @gem_test_files.nil?
29
- s.rubyforge_project = @gem_forge_project unless @gem_forge_project.nil?
30
-
31
- @gem_runtime_dependencies.each do |gem, version|
32
- s.add_runtime_dependency("#{gem}", "#{version}") unless (version.nil? or version.empty?)
33
- s.add_runtime_dependency("#{gem}") if (version.nil? or version.empty?)
34
- end unless @gem_runtime_dependencies.nil?
35
-
36
- @gem_devel_dependencies.each do |gem, version|
37
- s.add_devel_dependency("#{gem}", "#{version}") unless (version.nil? or version.empty?)
38
- s.add_devel_dependency("#{gem}") if (version.nil? or version.empty?)
39
- end unless @gem_devel_dependencies.nil?
40
-
41
- @gem_rdoc_options.each do |option|
42
- s.rdoc_options << option
43
- end unless @gem_rdoc_options.nil?
44
- end
45
-
46
- namespace :package do
47
- gem_task = Gem::PackageTask.new(spec)
48
- desc "Build a gem"
49
- task :gem => [ "clean" ] do
50
- gem_task.define
51
- Rake::Task[:gem].invoke
52
- end
53
- end
54
- end
55
-
@@ -1,80 +0,0 @@
1
- if @build_ips
2
- require 'erb'
3
- namespace :package do
4
- namespace :ips do
5
- workdir = "pkg/ips"
6
- proto = workdir + '/proto'
7
- repo = workdir + '/repo'
8
- pkgs = workdir + '/pkgs'
9
- repouri = "file://#{`pwd`.strip + '/' + repo}"
10
- artifact = "#{pkgs}/#{@name}@#{@ipsversion}.p5p"
11
-
12
- # Create a source repo
13
- # We dont clean the base pkg directory only ips work dir.
14
- task :clean do
15
- %x[rm -rf #{workdir}]
16
- end
17
-
18
- # Create an installation image at ips/proto
19
- task :prepare => :clean do
20
- check_tool('pkgsend')
21
- x %[mkdir -p #{workdir}]
22
- x %[gmake -f ext/ips/rules DESTDIR=#{proto} 2>#{workdir}/build.out ]
23
- end
24
-
25
- # Process templates and write the initial manifest
26
- task :prototmpl do
27
- erb("ext/ips/#{@name}.p5m.erb", workdir + '/' + @name + '.p5m.x')
28
- end
29
-
30
- # Update manifest to include the installation image information.
31
- task :protogen => :prototmpl do
32
- x %[pkgsend generate #{proto} >> #{workdir}/#{@name}.p5m.x ]
33
- os=%x[uname -p].chomp
34
- end
35
-
36
- # Generate and resolve dependency list
37
- task :protodeps => :protogen do
38
- x %[pkgdepend generate -d #{proto} #{workdir}/#{@name}.p5m.x > #{workdir}/#{@name}.depends ]
39
- x %[pkgdepend resolve -m #{workdir}/#{@name}.depends ]
40
- x %[cat #{workdir}/#{@name}.depends.res >> #{workdir}/#{@name}.p5m.x]
41
- end
42
-
43
- # Mogrify manifest to remove unncecessary info, and other kinds of transforms.
44
- task :protomogrify => :protodeps do
45
- x %[pkgmogrify ./ext/ips/transforms ./#{workdir}/#{@name}.p5m.x| pkgfmt >> #{workdir}/#{@name}.p5m ]
46
- end
47
-
48
- # Generate and resolve dependency list
49
- task :license => :protomogrify do
50
- x %[cp LICENSE #{proto}/#{@name}.license]
51
- end
52
-
53
- # Ensure that our manifest is sane.
54
- task :lint => :license do
55
- x %[pkglint #{workdir}/#{@name}.p5m]
56
- end
57
-
58
- task :package => :lint do
59
- x %[rm -rf #{pkgs}]
60
- x %[mkdir -p #{pkgs}]
61
- x %[pkgrepo create #{repo}]
62
- x %[pkgrepo set -s #{repo} publisher/prefix=puppetlabs.com]
63
- x %[pkgsend -s #{repouri} publish -d #{proto} --fmri-in-manifest #{workdir}/#{@name}.p5m]
64
- x %[rm -f #{artifact}]
65
- x %[pkgrecv -s #{repouri} -a -d #{artifact} #{@name}@#{@ipsversion}]
66
- end
67
-
68
- task :dry_install do
69
- x %[pkg install -nv -g #{artifact} #{@name}@#{@ipsversion}]
70
- end
71
- end
72
-
73
- desc "Creates an ips version"
74
- task :ips do
75
- Rake::Task['package:ips:prepare'].invoke
76
- Rake::Task['package:ips:package'].invoke
77
- end
78
-
79
- end
80
- end