bunchr 0.1.2 → 0.1.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.
Files changed (76) hide show
  1. data/lib/bunchr/version.rb +2 -2
  2. data/lib/bunchr.rb +1 -1
  3. metadata +62 -155
  4. data/Rakefile +0 -9
  5. data/TODO +0 -7
  6. data/bunchr.gemspec +0 -34
  7. data/doc/Bunchr/Logger.html +0 -201
  8. data/doc/Bunchr/Ohai.html +0 -201
  9. data/doc/Bunchr/Packages.html +0 -1840
  10. data/doc/Bunchr/Software.html +0 -1727
  11. data/doc/Bunchr/Utils.html +0 -334
  12. data/doc/Bunchr.html +0 -124
  13. data/doc/_index.html +0 -181
  14. data/doc/class_list.html +0 -47
  15. data/doc/css/common.css +0 -1
  16. data/doc/css/full_list.css +0 -55
  17. data/doc/css/style.css +0 -322
  18. data/doc/file.README.html +0 -376
  19. data/doc/file_list.html +0 -49
  20. data/doc/frames.html +0 -13
  21. data/doc/index.html +0 -376
  22. data/doc/js/app.js +0 -205
  23. data/doc/js/full_list.js +0 -173
  24. data/doc/js/jquery.js +0 -16
  25. data/doc/method_list.html +0 -438
  26. data/doc/top-level-namespace.html +0 -105
  27. data/example_recipes/autoconf.rake +0 -18
  28. data/example_recipes/libyaml.rake +0 -18
  29. data/example_recipes/openssl.rake +0 -54
  30. data/example_recipes/ruby.rake +0 -38
  31. data/example_recipes/sensu.rake +0 -18
  32. data/example_recipes/sensu_bin_stubs.rake +0 -17
  33. data/example_recipes/sensu_configs.rake +0 -30
  34. data/example_recipes/sensu_dashboard.rake +0 -17
  35. data/example_recipes/zlib.rake +0 -32
  36. data/pkg/bunchr-0.1.1/README.md +0 -355
  37. data/pkg/bunchr-0.1.1/Rakefile +0 -9
  38. data/pkg/bunchr-0.1.1/TODO +0 -7
  39. data/pkg/bunchr-0.1.1/bunchr.gemspec +0 -34
  40. data/pkg/bunchr-0.1.1/doc/Bunchr/Logger.html +0 -201
  41. data/pkg/bunchr-0.1.1/doc/Bunchr/Ohai.html +0 -201
  42. data/pkg/bunchr-0.1.1/doc/Bunchr/Packages.html +0 -1840
  43. data/pkg/bunchr-0.1.1/doc/Bunchr/Software.html +0 -1727
  44. data/pkg/bunchr-0.1.1/doc/Bunchr/Utils.html +0 -334
  45. data/pkg/bunchr-0.1.1/doc/Bunchr.html +0 -124
  46. data/pkg/bunchr-0.1.1/doc/_index.html +0 -181
  47. data/pkg/bunchr-0.1.1/doc/class_list.html +0 -47
  48. data/pkg/bunchr-0.1.1/doc/css/common.css +0 -1
  49. data/pkg/bunchr-0.1.1/doc/css/full_list.css +0 -55
  50. data/pkg/bunchr-0.1.1/doc/css/style.css +0 -322
  51. data/pkg/bunchr-0.1.1/doc/file.README.html +0 -376
  52. data/pkg/bunchr-0.1.1/doc/file_list.html +0 -49
  53. data/pkg/bunchr-0.1.1/doc/frames.html +0 -13
  54. data/pkg/bunchr-0.1.1/doc/index.html +0 -376
  55. data/pkg/bunchr-0.1.1/doc/js/app.js +0 -205
  56. data/pkg/bunchr-0.1.1/doc/js/full_list.js +0 -173
  57. data/pkg/bunchr-0.1.1/doc/js/jquery.js +0 -16
  58. data/pkg/bunchr-0.1.1/doc/method_list.html +0 -438
  59. data/pkg/bunchr-0.1.1/doc/top-level-namespace.html +0 -105
  60. data/pkg/bunchr-0.1.1/example_recipes/autoconf.rake +0 -18
  61. data/pkg/bunchr-0.1.1/example_recipes/libyaml.rake +0 -18
  62. data/pkg/bunchr-0.1.1/example_recipes/openssl.rake +0 -54
  63. data/pkg/bunchr-0.1.1/example_recipes/ruby.rake +0 -38
  64. data/pkg/bunchr-0.1.1/example_recipes/sensu.rake +0 -18
  65. data/pkg/bunchr-0.1.1/example_recipes/sensu_bin_stubs.rake +0 -17
  66. data/pkg/bunchr-0.1.1/example_recipes/sensu_configs.rake +0 -30
  67. data/pkg/bunchr-0.1.1/example_recipes/sensu_dashboard.rake +0 -17
  68. data/pkg/bunchr-0.1.1/example_recipes/zlib.rake +0 -32
  69. data/pkg/bunchr-0.1.1/lib/bunchr/logger.rb +0 -18
  70. data/pkg/bunchr-0.1.1/lib/bunchr/ohai.rb +0 -18
  71. data/pkg/bunchr-0.1.1/lib/bunchr/packages.rb +0 -176
  72. data/pkg/bunchr-0.1.1/lib/bunchr/software.rb +0 -164
  73. data/pkg/bunchr-0.1.1/lib/bunchr/utils.rb +0 -36
  74. data/pkg/bunchr-0.1.1/lib/bunchr/version.rb +0 -3
  75. data/pkg/bunchr-0.1.1/lib/bunchr.rb +0 -44
  76. data/pkg/bunchr-0.1.1.gem +0 -0
@@ -1,18 +0,0 @@
1
- Bunchr::Software.new do |t|
2
- t.name = 'sensu'
3
-
4
- install_prefix = "#{Bunchr.install_dir}"
5
-
6
- # use the gem installed by the ruby.rake recipe in <Bunchr.install_dir>/embedded/bin
7
- gem_bin = "#{install_prefix}/embedded/bin/gem"
8
-
9
- t.download_commands << "git clone git://github.com/sensu/sensu.git"
10
-
11
- t.build_commands << "rm -f sensu-*.gem"
12
- t.build_commands << "#{gem_bin} build sensu.gemspec"
13
-
14
- t.install_commands << "#{gem_bin} install --no-ri --no-rdoc \
15
- sensu-*.gem"
16
-
17
- CLEAN << install_prefix
18
- end
@@ -1,17 +0,0 @@
1
- Bunchr::Software.new do |t|
2
- t.name = 'sensu_bin_stubs'
3
-
4
- bin_dir = "#{Bunchr.install_dir}/bin"
5
-
6
- # build and install commands run from t.work_dir. In this case, our
7
- # files are located in the same dir as the Rakefile.
8
- t.work_dir = Dir.pwd
9
-
10
- t.install_commands << "rm -rf #{bin_dir}"
11
- t.install_commands << "mkdir -p #{bin_dir}"
12
-
13
- t.install_commands << "ln -s ../embedded/bin/sensu-api #{bin_dir}/sensu-api"
14
- t.install_commands << "ln -s ../embedded/bin/sensu-client #{bin_dir}/sensu-client"
15
- t.install_commands << "ln -s ../embedded/bin/sensu-server #{bin_dir}/sensu-server"
16
- t.install_commands << "ln -s ../embedded/bin/sensu-dashboard #{bin_dir}/sensu-dashboard"
17
- end
@@ -1,30 +0,0 @@
1
- Bunchr::Software.new do |t|
2
- t.name = 'sensu_configs'
3
-
4
- # build and install commands run from t.work_dir. In this case, our
5
- # files are located in the same dir as the Rakefile.
6
- t.work_dir = Dir.pwd
7
-
8
- t.install_commands << "rm -rf /etc/sensu"
9
- t.install_commands << "rm -rf /etc/init.d/sensu-*"
10
- t.install_commands << "rm -rf /usr/share/sensu"
11
- t.install_commands << "rm -rf /var/log/sensu"
12
-
13
- t.install_commands << "cp -rf ./sensu_configs/sensu /etc/sensu"
14
- t.install_commands << "cp -f ./sensu_configs/logrotate.d/sensu /etc/logrotate.d/sensu"
15
-
16
- t.install_commands << "cp -f ./sensu_configs/init.d/sensu-api /etc/init.d/sensu-api"
17
- t.install_commands << "cp -f ./sensu_configs/init.d/sensu-server /etc/init.d/sensu-server"
18
- t.install_commands << "cp -f ./sensu_configs/init.d/sensu-client /etc/init.d/sensu-client"
19
- t.install_commands << "cp -f ./sensu_configs/init.d/sensu-dashboard /etc/init.d/sensu-dashboard"
20
-
21
- t.install_commands << "mkdir -p /usr/share/sensu/upstart"
22
- t.install_commands << "cp -f ./sensu_configs/init/*.conf /usr/share/sensu/upstart/"
23
-
24
- t.install_commands << "mkdir /var/log/sensu"
25
-
26
- CLEAN << "/var/log/sensu"
27
- CLEAN << "/etc/sensu"
28
- CLEAN << "/etc/init.d/sensu-*"
29
- CLEAN << "/usr/share/sensu"
30
- end
@@ -1,17 +0,0 @@
1
- Bunchr::Software.new do |t|
2
- t.name = 'sensu_dashboard'
3
-
4
- install_prefix = "#{Bunchr.install_dir}"
5
- # use the gem installed by the ruby.rake recipe in <Bunchr.install_dir>/embedded/bin
6
- gem_bin = "#{install_prefix}/embedded/bin/gem"
7
-
8
- t.download_commands << "git clone git://github.com/sensu/sensu-dashboard.git"
9
-
10
- t.work_dir = 'sensu-dashboard'
11
-
12
- t.build_commands << "rm -f sensu-dashboard-*.gem"
13
- t.build_commands << "#{gem_bin} build sensu-dashboard.gemspec"
14
-
15
- t.install_commands << "#{gem_bin} install --no-ri --no-rdoc \
16
- sensu-dashboard-*.gem"
17
- end
@@ -1,32 +0,0 @@
1
- Bunchr::Software.new do |t|
2
- t.name = 'zlib'
3
- t.version = '1.2.6'
4
-
5
- install_prefix = "#{Bunchr.install_dir}/embedded"
6
-
7
- t.download_commands << "curl -O http://zlib.net/zlib-1.2.6.tar.gz"
8
- t.download_commands << "tar xfvz zlib-1.2.6.tar.gz"
9
-
10
- os = t.ohai['os']
11
- arch = t.ohai['kernel']['machine']
12
-
13
- if os == 'darwin' && arch == 'x86_64'
14
- t.build_environment['LDFLAGS'] = "-R#{install_prefix}/lib -L#{install_prefix}/lib -I#{install_prefix}/include"
15
- t.build_environment['CFLAGS'] = "-I#{install_prefix}/include -L#{install_prefix}/lib"
16
- elsif os == 'linux'
17
- t.build_environment['LDFLAGS'] = "-Wl,-rpath #{install_prefix}/lib -L#{install_prefix}/lib -I#{install_prefix}/include"
18
- t.build_environment['CFLAGS'] = "-I#{install_prefix}/include -L#{install_prefix}/lib"
19
- end
20
-
21
- # gcc will error if the lib dir doesn't exist, at least on some linux platforms
22
- unless File.directory?("#{install_prefix}/lib")
23
- t.build_commands << "mkdir #{install_prefix}/lib"
24
- end
25
-
26
- t.build_commands << "./configure --prefix=#{install_prefix}"
27
- t.build_commands << "make"
28
-
29
- t.install_commands << "make install"
30
-
31
- CLEAN << install_prefix
32
- end
@@ -1,355 +0,0 @@
1
- Bunchr
2
- ======
3
-
4
- Overview
5
- --------
6
-
7
- Bunchr is a Rake/Ruby-based DSL for building and bundling complex software
8
- projects into various package formats, ie: RPM, DEB, etc (packaging performed
9
- by [fpm](https://github.com/jordansissel/fpm).
10
-
11
- Originally developed to create "omnibus" style packages that include an entire
12
- ruby stack along with one or more gems, but useful for general compilation and
13
- packaging as well.
14
-
15
- It is typically intended to be used in conjunction with [Vagrant](http://vagrantup.com)
16
- but can be used without Vagrant as well.
17
-
18
- History
19
- -------
20
-
21
- Bunchr was conceived as a tool to help the [Sensu](https://github.com/sensu)
22
- monitoring project find a better way to create packages that would be as
23
- easy as possible to deploy on a variety of platforms with minimal friction and
24
- with little or no knowledge about the idiosyncrasies of the Ruby universe
25
- (version incompatibilities, gem conflicts, etc). This was particularly desirable
26
- for Sensu because one of the components is an agent that will be installed
27
- on most or all servers in an infrastructure. Thus, the package should be easy
28
- to install and should not interfere with any other Ruby apps or scripts on the
29
- server.
30
-
31
- About the time the Sensu project was discussing a new packaging approach,
32
- [Adam Jacob](http://twitter.com/adamhjk) from [Opscode/Chef](http://opscode.com/) took notice and suggested
33
- a slightly different approach that achieved the same goals. The approach was
34
- called 'omnibus' and was already in use at Opscode to produce a simple and
35
- uniform installer for Chef.
36
-
37
- Opscode was using a Clojure-based tool at the time called [omnibus](https://github.com/opscode/omnibus)
38
- and were working on a Ruby-based version of omnibus as well.
39
-
40
- However, the Ruby based Omnibus was not available at the time, so Bunchr was
41
- created and it re-implements many of the concepts of the Clojure-based Omnibus
42
- but on top of Ruby / Rake with a few differences.
43
-
44
- Installation
45
- ------------
46
-
47
- ```
48
- gem install bunchr
49
- ```
50
-
51
- Usage
52
- -----
53
-
54
- The simplest workflow is:
55
-
56
- 1. Create a `Rakefile`
57
- 2. Define 1 or more `Bunchr::Software` objects
58
- 3. Define 1 `Bunchr::Packages` object.
59
- 4. run `rake`
60
- 5. receive new packages (.rpm or .deb, depending on platform) !
61
-
62
- For details on the DSL and examples, continue reading.
63
-
64
- DSL Overview
65
- ------------
66
-
67
- A typical Bunchr project is comprised of one or more `Bunchr::Software` objects
68
- and a single `Bunchr::Packages` object. Define these all in a single `Rakefile` or
69
- separate them into files for readability and re-use.
70
-
71
- `Software` objects are responsible for downloading, building, and installing
72
- a single software component, such as `zlib` or `ruby`. `Software` objects
73
- support platform-specific compilation options by making Ohai data available
74
- for decision making.
75
-
76
- `Packages` objects are used to combine `Software` objects into a single package.
77
- It will automatically try to generate any packages supported by the current
78
- platform, for example, RPMs will be built if the platform supports it, DEB
79
- will be built if the platform supports it.
80
-
81
- The goal is to be able to use a single code base to build _and_ package a
82
- project on multiple platforms.
83
-
84
- Currently supported package types:
85
-
86
- * tar.gz
87
- * .deb
88
- * .rpm
89
-
90
- ### Packages DSL
91
-
92
- A project will typically only contain a single `Bunchr::Packages` object which
93
- is essentially a wrapper around `fpm`.
94
-
95
- The Ohai `platform` data will be used to determined what type of packages can be
96
- built on the current system. Typically you would run the same Bunchr code on a
97
- Debian based box to build the .deb, and a Redhat based box to build the .rpm.
98
- Vagrant can help with this.
99
-
100
- Example `Rakefile`:
101
-
102
- ```ruby
103
- require 'bunchr'
104
-
105
- Bunchr.build_dir = '/tmp/build'
106
- Bunchr.install_dir = '/opt/sensu'
107
-
108
- Bunchr.load_recipes Dir['recipes/**/*.rake']
109
-
110
- Bunchr::Packages.new do |t|
111
- t.name = 'sensu'
112
- t.version = ENV['SENSU_VERSION'] || '0.9.5'
113
- t.iteration = ENV['BUILD_NUMBER'] || '1'
114
-
115
- t.category = 'Monitoring'
116
- t.license = 'MIT License'
117
- t.vendor = 'Sonian Inc.'
118
- t.url = 'https://github.com/sonian/sensu'
119
- t.description = 'A monitoring framework that aims to be simple, malleable, and scalable. Publish/subscribe model.'
120
-
121
- case t.ohai.platform_family
122
- when 'debian'
123
- t.scripts[:after_install] = 'pkg_scripts/deb/postinst'
124
- t.scripts[:before_remove] = 'pkg_scripts/deb/prerm'
125
- t.scripts[:after_remove] = 'pkg_scripts/deb/postrm'
126
- when 'rhel', 'fedora'
127
- t.scripts[:before_install] = 'pkg_scripts/rpm/pre'
128
- t.scripts[:after_install] = 'pkg_scripts/rpm/post'
129
- t.scripts[:before_remove] = 'pkg_scripts/rpm/preun'
130
- end
131
-
132
- t.include_software('ruby')
133
- t.include_software('sensu')
134
- t.include_software('sensu_dashboard')
135
- t.include_software('sensu_configs')
136
- t.include_software('sensu_bin_stubs')
137
-
138
- t.files << Bunchr.install_dir # /opt/sensu
139
- t.files << '/usr/share/sensu'
140
- t.files << '/var/log/sensu'
141
-
142
- t.files << '/etc/init.d/sensu-api'
143
- t.files << '/etc/init.d/sensu-client'
144
- t.files << '/etc/init.d/sensu-server'
145
- t.files << '/etc/init.d/sensu-dashboard'
146
-
147
- # need to enumerate config files for fpm
148
- # these are installed from recipe/sensu_configs.rake
149
- t.config_files << "/etc/sensu/handlers/default"
150
- t.config_files << "/etc/sensu/conf.d/client.json"
151
- t.config_files << "/etc/sensu/conf.d/checks.json"
152
- t.config_files << "/etc/sensu/conf.d/handlers.json"
153
- t.config_files << "/etc/sensu/config.json"
154
-
155
- t.config_files << '/etc/logrotate.d/sensu'
156
- end
157
-
158
- # default task executed when `rake` is run with no args.
159
- task :default => ['packages:sensu']
160
- ```
161
-
162
- Let's break it all down:
163
-
164
- * `Bunchr.build_dir` - Required. This variable is available to all
165
- `Bunchr::Software` recipes specifying a temporary directory used for
166
- downloading and compiling.
167
-
168
- * `Bunchr.install_dir` - Required. This variable is available to all
169
- `Bunchr::Software` recipes. It will typically be the base directory
170
- where all software is installed.
171
-
172
- The following variables are used to drive `fpm` when building packages:
173
-
174
- * `t.name`, `t.version`, `t.iteration` - Required.
175
- Used by `fpm` to construct the package names, ie:
176
- `name-version-iteration-arch.rpm`
177
-
178
- * `t.arch` - Optional. Can be used to override the default detected
179
- architecture, eg: `all` or `noarch`.
180
-
181
- * `t.category`, `t.license`, `t.vendor`, `t.url`, `t.description` -
182
- Optional. Package metadata.
183
-
184
- * `t.include_software(name)` - Optional. This is used to tell Bunchr what
185
- `Software` components should be built and installed before creating
186
- packages.
187
-
188
- * `t.scripts` - Optional. A hash with keys: `:after_install`, `:before_install`,
189
- `:after_remove`, and `:before_remove`. The specified files will be included
190
- with the packages.
191
-
192
- * `t.files` - Required. An array of files and directories to include.
193
-
194
- * `t.config_files` - Optional. An array of files that will be marked as
195
- configuration files (if supported by the underlying package type).
196
- Config_files are automatically added to the `t.files` array.
197
-
198
- NOTE: you must specify individual files, not directories.
199
-
200
- All tasks created by a `Bunchr::Packages` object are prefixed into the
201
- `packages:` namespace. To see the generated tasks:
202
-
203
- ```
204
- $ rake -T packages
205
- rake packages:sensu # Create bunchr packages for sensu 0.9.5-1
206
- rake packages:sensu:build # Build all packages: sensu-0.9.5-1-x86_64
207
- rake packages:sensu:build_deb # Build deb: sensu-0.9.5-1-x86_64
208
- rake packages:sensu:build_rpm # Build RPM: sensu-0.9.5-1-x86_64
209
- rake packages:sensu:build_tarball # Build tarball: sensu-0.9.5-1-x86_64.tar.gz
210
- ```
211
-
212
- The main task is `packages:#{name}`. Exec this task to create all relevant
213
- packages.
214
-
215
-
216
- ### Software DSL
217
-
218
- * Example software recipes: https://github.com/joemiller/bunchr/tree/master/example_recipes
219
-
220
- Example recipe for building and installing `ruby`:
221
-
222
- ```ruby
223
- Bunchr::Software.new do |t|
224
- t.name = 'ruby'
225
- t.version = '1.9.3-p125'
226
-
227
- t.depends_on('autoconf')
228
- t.depends_on('zlib')
229
- t.depends_on('openssl')
230
- t.depends_on('libyaml')
231
-
232
- install_prefix = "#{Bunchr.install_dir}/embedded"
233
-
234
- os = t.ohai['os']
235
- arch = t.ohai['kernel']['machine']
236
-
237
- t.download_commands << "curl -O http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz"
238
- t.download_commands << "tar xfvz ruby-1.9.3-p125.tar.gz"
239
-
240
- if os == 'darwin' && arch == 'x86_64'
241
- t.build_environment['LDFLAGS'] = "-arch x86_64 -R#{install_prefix}/lib -L#{install_prefix}/lib -I#{install_prefix}/include"
242
- t.build_environment['CFLAGS'] = "-arch x86_64 -m64 -L#{install_prefix}/lib -I#{install_prefix}/include"
243
- elsif os == 'linux'
244
- t.build_environment['LDFLAGS'] = "-Wl,-rpath #{install_prefix}/lib -L#{install_prefix}/lib -I#{install_prefix}/include"
245
- t.build_environment['CFLAGS'] = "-L#{install_prefix}/lib -I#{install_prefix}/include"
246
- elsif os == 'solaris2'
247
- t.build_environment['LDFLAGS'] = "-R#{install_prefix}/lib -L#{install_prefix}/lib -I#{install_prefix}/include"
248
- t.build_environment['CFLAGS'] = "-L#{install_prefix}/lib -I#{install_prefix}/include"
249
- end
250
-
251
- t.build_commands << "./configure --prefix=#{install_prefix} \
252
- --with-opt-dir=#{install_prefix} \
253
- --enable-shared \
254
- --disable-install-doc"
255
- t.build_commands << "make"
256
-
257
- t.install_commands << "make install"
258
-
259
- CLEAN << install_prefix
260
- end
261
- ```
262
-
263
- * `t.name` - Required. Name of the software component.
264
-
265
- * `t.version` - Optional. Version of the software component.
266
-
267
- * `t.depends_on(name)` - Optional. This is used to tell Bunchr that other
268
- `Software` components should be built before this one.
269
-
270
- * `t.ohai` - This provides access to the `Bunchr::Ohai` object which contains
271
- Ohai data about the system. By default, only the `platform` and `os` plugins
272
- are loaded. Since you have direct access to the Ohai object, other plugins
273
- can be loaded by calling `t.ohai.require_plugin`
274
-
275
- * `t.download_commands` - An array of shell commands used to download and
276
- uncompress the source. You could also do a `git clone ..` here. These commands
277
- are executed in the `download_dir` which is `#{Bunchr.build_dir}/#{t.name}`.
278
- The `download_dir` cannot be changed.
279
-
280
- * `t.build_commands` - An array of shell commands used to compile the downloaded
281
- source. These commands are executed in the directory defined by
282
- `t.work_dir` which will be automatically determined from:
283
- 1) `#{download_dir}/#{t.name}-#{t.version}` (common for most tarballs), or
284
- 2) `#{download_dir}/#{t.name}` (if no `t.version` set), or
285
- 3) explicitly set by calling `t.work_dir = '/some/absolute/path'`
286
-
287
- * `t.install_commands` - An array of shell commands used to download and
288
- uncompress the source. You could also do a `git clone ..` here. These commands
289
- are executed in `t.work_dir` directory.
290
-
291
- * `CLEAN` - Optional. This is an array of files and directories that should be deleted
292
- when `rake clean` is executed.
293
-
294
- `download_commands`, `build_commands`, and `install_commands` are all optional,
295
- but unless one of them contains some commands your `Software` object won't be
296
- doing anything useful.
297
-
298
- If any of `download_commands`, `build_commands`, or `install_commands` exit
299
- with a non-zero status, the entire Bunchr process will stop
300
- and print any STDOUT or STDERR from the failed command to the Logger.
301
-
302
- Bunchr will keep track of what has succeeded so that you can restart a failed
303
- build after fixing an error. This can save quite a bit of time during package
304
- development, but you should consider doing a full `rake clean` before building
305
- any official packages.
306
-
307
-
308
- All tasks created by a `Bunchr::Software` object are prefixed into the
309
- `software:` namespace. To see the generated tasks:
310
-
311
- ```
312
- $ rake -T software:ruby
313
- rake software:ruby # Download, build, and install ruby 1.9.3-p125
314
- rake software:ruby:build # Build ruby 1.9.3-p125
315
- rake software:ruby:download # Download ruby 1.9.3-p125
316
- rake software:ruby:install # Install ruby 1.9.3-p125
317
- ```
318
-
319
- `Software` recipes can be defined directly in the Rakefile or they can
320
- be separated into individual files and loaded via `Bunchr.load_recipes(files)`.
321
-
322
-
323
- Integration with Vagrant
324
- ------------------------
325
-
326
- * TODO. maybe link to sensu-bunchr here.
327
-
328
- Other Examples
329
- --------------
330
-
331
- * TODO. maybe link to sensu-bunchr here, or a complete example of fpm
332
-
333
- Author
334
- ------
335
-
336
- * [Joe Miller](https://twitter.com/miller_joe) - http://joemiller.me / https://github.com/joemiller
337
-
338
- License
339
- -------
340
-
341
- Author:: Joe Miller (<joeym@joeym.net>)
342
- Copyright:: Copyright (c) 2012 Joe Miller
343
- License:: Apache License, Version 2.0
344
-
345
- Licensed under the Apache License, Version 2.0 (the "License");
346
- you may not use this file except in compliance with the License.
347
- You may obtain a copy of the License at
348
-
349
- http://www.apache.org/licenses/LICENSE-2.0
350
-
351
- Unless required by applicable law or agreed to in writing, software
352
- distributed under the License is distributed on an "AS IS" BASIS,
353
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
354
- See the License for the specific language governing permissions and
355
- limitations under the License.
@@ -1,9 +0,0 @@
1
- require 'rubygems'
2
- require 'rubygems/package_task'
3
-
4
- spec = eval(File.read('bunchr.gemspec'))
5
-
6
- Gem::PackageTask.new(spec) do |pkg|
7
- end
8
-
9
- task :default => :gem
@@ -1,7 +0,0 @@
1
- x rakefile
2
- readme
3
- vagrant examples (or link to sensu?)
4
- other examples (or link to sensu-bunchr?)
5
- refactor sensu project to use the gem
6
- publish to github
7
- twitter to those who were interested
@@ -1,34 +0,0 @@
1
-
2
- # -*- encoding: utf-8 -*-
3
- $:.push('lib')
4
- require "bunchr/version"
5
-
6
- Gem::Specification.new do |s|
7
- s.name = "bunchr"
8
- s.version = Bunchr::VERSION.dup
9
- s.date = "2012-04-17"
10
- s.summary = "A DSL for bundling complex software projects into 'omnibus'-style packages."
11
- s.email = "joeym@joeym.net"
12
- s.homepage = "https://github.com/joemiller/bunchr"
13
- s.authors = ['Joe Miller']
14
-
15
- s.description = <<-EOF
16
- A DSL for building complex software projects and packaging them (RPM, DEB, etc).
17
- Originally developed to create "omnibus" style packages that include an entire
18
- ruby stack along with one or more gems, but useful for general compilation and
19
- packaging as well.
20
- EOF
21
-
22
- s.files = Dir['**/*']
23
- s.require_paths = ["lib"]
24
-
25
- ## Make sure you can build the gem on older versions of RubyGems too:
26
- s.rubygems_version = "1.3.6"
27
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
28
- s.specification_version = 3 if s.respond_to? :specification_version
29
-
30
- s.add_dependency("rake", ">= 0.8.7")
31
- s.add_dependency("ohai")
32
- s.add_dependency("systemu")
33
- s.add_dependency("fpm", "~> 0.4.6")
34
- end