Skip to content
This repository has been archived by the owner on Aug 14, 2020. It is now read-only.

docs: Update readme #25

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 33 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -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]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is basically telling people "don't use this" - is that really the message we want to send? Does it not provide any value?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see it as quite distinct from acbuild philosophically

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

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Retaining a little bit of info on how it works would be nice.

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`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/go/cmake/


$ 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