diff --git a/README.md b/README.md index 1a94486..220f98c 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,46 @@ -# goaci +# proj2aci -`goaci` is a simple command-line tool to build go projects into ACIs which confirm to the [app container specification][appc-spec]. +`proj2aci` is a command-line tool to build various projects into ACIs which conform to the [app container specification][appc-spec]. + +Currently `proj2aci` supports rather simple cases: + +- Go projects buildable with `go get` +- Rather simpler CMake projects + +`proj2aci` project is probably going to be superseded by [acbuild] +project. Also, the UI of the `proj2aci` application and the API of the +`proj2aci` library are not stable. [appc-spec]: https://github.com/appc/spec +[acbuild]: https://github.com/appc/acbuild ## Usage -Use `goaci` as you would `go get`: +### `proj2aci go` + +The simplest invocation of `proj2aci go` would be: `proj2aci go github.com/coreos/etcd` + +For additional parameters, please call `proj2aci go --help`. + +### `proj2aci cmake` + +The simplest invocation of `proj2aci go` would be: `proj2aci cmake github.com/cmake-stuff/project` - $ goaci github.com/coreos/etcd - Wrote etcd.aci - $ actool -debug validate etcd.aci - etcd.aci: valid app container image +For additional parameters, please call `proj2aci cmake --help`. -`goaci` provides options for specifying assets, adding arguments for an application, selecting binary is going to be packaged in final ACI and so on. Use --help to read about them. +### a library -## How it works +`github.com/appc/proj2aci/proj2aci` provides a `Builder` type which +take `BuilderCustomizations` interface implementation. The `Builder` +is doing all the heavy lifting, while `BuilderCustomizations` provide +some specific bits for builder. The library provides +`BuilderCustomizations` for `go` and `cmake` projects. A developer can +provide another implementation of `BuilderCustomizations` for building +a different kind of a project. -`goaci` creates a temporary directory and uses it as a `GOPATH` (unless it is overridden with `--go-path` option); it then `go get`s the specified package and compiles it statically. -Then it generates an image manifest (using mostly default values) and leverages the [appc/spec](https://github.com/appc/spec) libraries to construct an ACI. +Besides the above, the library provides also some other useful +functions and types for assets preparing or getting vcs info. ## TODO -Lots, check out https://github.com/appc/goaci/issues +Lots, check out https://github.com/appc/proj2aci/issues