Commit Graph

1500 Commits

Author SHA1 Message Date
Jay Adkisson a9cb6c3efe the assemble method has moved to builder 2011-01-05 18:31:28 -08:00
Jay Adkisson baa31dcf79 be more energetic with method naming, and use symbols 2011-01-05 18:29:43 -08:00
Jay Adkisson 2e9199ae02 Builder#assemble! doesn't actually take any params 2011-01-05 18:28:32 -08:00
Jay Adkisson 2427320200 the checksum method is now owned by builder 2011-01-05 18:27:00 -08:00
Jay Adkisson ad9e975014 Package#default_output.
Package managers usually have lots of guidelines
and specs for naming conventions.  This lets the
package class provide a default.
2011-01-05 18:23:15 -08:00
Jay Adkisson ff35261651 meet FPM::Dir, the simplest source of all. 2011-01-05 18:21:23 -08:00
Jay Adkisson fea67487c3 FPM::Builder
The builder is the thing that takes a package and a source
and makes them do things.  It is responsible for fpm-wide
defaults, keeping track of paths of things, etc.

Note in particular the change to bin/fpm.
2011-01-05 18:16:59 -08:00
Jay Adkisson 734905a979 a package is initialized with a source
and interprets its metadata accordingly
2011-01-05 18:13:59 -08:00
Jay Adkisson f1d0c51eab tar is owned by the source now 2011-01-05 18:12:29 -08:00
Jay Adkisson cc36789b9d FPM::Source
This is the base class for sources.  Subclasses need to define
two methods:

def get_metadata
  # starting out with @paths and @root, infer as much
  # metadata as possible
end

def make_tarball!(tar_path)
  # turn this source into a tarball at the given path
end
2011-01-05 18:00:10 -08:00
Jay Adkisson 4d311ca0a0 -s SOURCE_TYPE -t PACKAGE_TYPE
This introduces the concept of sources and packages.

A source is "something to build a package from" - i.e. something
that can be turned into a versioned tarball.  Easy ones to support
are 'dir' (a plain directory), 'tar' (a tarball), 'npm', 'gem', etc.

A package is a specified output type; deb, rpm, etc. that knows how
to turn a tarball with metadata into a system package.
2011-01-05 17:52:50 -08:00
Jay Adkisson c947d42358 no need to delete the file twice (moved to package.rb:84) 2011-01-04 18:46:49 -08:00
Jay Adkisson 9f946f7349 factor out the re-usable parts of assemble
This is so I can reuse as much code as possible for rpms.
I've verified to the extent I know that behavior is unchanged
(i.e. made a directory somewhere and packaged it up as a deb),
but it'd be nice to have some specs so I can be sure.  Count that
as a TODO.
2011-01-04 18:37:21 -08:00
Jay Adkisson 2000db4904 ignore build directories 2011-01-04 18:24:30 -08:00
Jay Adkisson fd9f4579da factor out the architecture munging into a method in FPM::Deb 2011-01-04 18:24:30 -08:00
Jay Adkisson 79020d047f rm debug puts 2011-01-04 18:24:30 -08:00
Jay Adkisson f92f9da0fc ignore vim swaps 2011-01-04 18:24:30 -08:00
Jordan Sissel ce8efab77c - delete the .deb if it exists, before we create it 2011-01-04 16:29:40 -08:00
Jordan Sissel 162d4661ac - bump 2011-01-04 01:30:15 -08:00
Jordan Sissel 62744a8dbe - include some more paths in npm packages
- set more default values since apt-get barfs on packages with missing
  data, it seems. Hard to debug since the error messages are totally
  meaningless.
2011-01-04 01:29:15 -08:00
Jordan Sissel 00a5201ffe - Add 'bin' scripts to the package, too. 2011-01-04 00:16:12 -08:00
Jordan Sissel fafb9eb0be - add install notes 2011-01-03 19:38:05 -08:00
Jordan Sissel d9fc368c23 fix formatting 2011-01-03 19:36:53 -08:00
Jordan Sissel 537e0aff26 - Update readme 2011-01-03 19:36:07 -08:00
Jordan Sissel bdcea29023 - show -dev package 2011-01-03 19:33:07 -08:00
Jordan Sissel c9c2cde350 - show creating the -doc packages 2011-01-03 19:31:59 -08:00
Jordan Sissel b8962d5490 - Add 'state' of things 2011-01-03 19:29:08 -08:00
Jordan Sissel 8aaf858edb - Add way more docs 2011-01-03 19:27:16 -08:00
Jordan Sissel cd98a580dd version bump 2011-01-03 19:08:58 -08:00
Jordan Sissel bf6c3dc506 - Generate version dependency that allows for any 'release' number. 2011-01-03 19:08:40 -08:00
Jordan Sissel ada6073373 - more error handling 2011-01-03 18:56:04 -08:00
Jordan Sissel a85845b2f8 -version bump 2011-01-03 18:53:25 -08:00
Jordan Sissel c91cd74c32 - Add fpm-npm to bin 2011-01-03 18:53:02 -08:00
Jordan Sissel 16c143af10 - make fpm-npm a toplevel tool 2011-01-03 18:52:43 -08:00
Jordan Sissel 6fd63af88d - version bump
- remove debug output
2011-01-03 18:49:25 -08:00
Jordan Sissel 3ef75dbcd5 - support dependencies again 2011-01-03 18:47:19 -08:00
Jordan Sissel f189c31c0b move to markdown 2011-01-03 18:47:15 -08:00
Jordan Sissel 3cee10d29a - Move to markdown 2011-01-03 18:47:00 -08:00
Jordan Sissel 5b942f2710 - Fix gem-ification bits (now installs+runs)
- Factor out 'deb' package assembly into a library
2011-01-03 18:22:09 -08:00
Jordan Sissel 63494e9096 - Add gem packaging 2011-01-03 17:25:06 -08:00
Jordan Sissel 0d1b422d8c - rename to fpm. 2011-01-03 15:42:17 -08:00
Jordan Sissel f09c3b1d4f set group, too 2011-01-03 15:40:54 -08:00
Jordan Sissel 151cbba284 - More work converting npm to debs 2011-01-03 15:05:45 -08:00
Jordan Sissel 59a38309b7 - purge swap file 2011-01-03 15:05:29 -08:00
Jordan Sissel e48da78deb more readmes 2011-01-03 13:59:00 -08:00
Jordan Sissel 2d5b7a2a15 fix path 2011-01-03 13:23:48 -08:00
Jordan Sissel 797cf35da0 - finish move 2011-01-03 13:23:32 -08:00
Jordan Sissel ff0a1f466f - Move to bin/ 2011-01-03 13:19:08 -08:00
Jordan Sissel 8035419385 - Start prototyping generic package creator. 2011-01-03 13:10:15 -08:00
Jordan Sissel 8b2c17e4c4 first commit 2011-01-03 12:08:51 -08:00