Hammer takes YAML specs and uses them to build packages (with FPM.) Here's a pretty minimal example, please see the docs for more information.
---
name: consul-cli
version: 0.1.1
license: APL 2.0
iteration: 2
vendor: Cisco
url: https://github.com/CiscoCloud/consul-cli
architecture: x86_64
description: Command line interface to Consul HTTP API
type: rpm
obsoletes:
- consul-utils
resources:
- url: https://github.com/CiscoCloud/consul-cli/releases/download/v{{.Version}}/consul-cli_{{.Version}}_linux_amd64.tar.gz
hash-type: sha256
hash: 1bc31fa70a9508a2c302bbdbd3073601bcad82694af8370d968c69c32471ee7f
targets:
- src: '{{.BuildRoot}}/consul-cli_{{.Version}}_linux_amd64/consul-cli'
dest: /usr/bin/
scripts:
build: |
tar -xzvf consul-cli_{{.Version}}_linux_amd64.tar.gz
extra-args: |
--rpm-os linux
When saved as spec.yml
in some folder, Hammer will find and execute it,
producing a package. Most fields are templated, and you can use Go templates to
get fields on the
Package struct.
First, you'll need to get FPM (which
should just be gem install fpm
) and any build tools you need (for example, to
build RPMs you'll need rpmbuild
.) Then, go install github.com/asteris-llc/hammer
.
Got a feature you'd like to see? PRs are very welcome. Just make sure that your build passes all the checks on gometalinter. Tests are appreciated, as well!