63 lines
2.2 KiB
Markdown
63 lines
2.2 KiB
Markdown
# go-abra
|
|
|
|
[![Build Status](https://build.coopcloud.tech/api/badges/coop-cloud/go-abra/status.svg?ref=refs/heads/main)](https://build.coopcloud.tech/coop-cloud/go-abra)
|
|
[![Go Report Card](https://goreportcard.com/badge/git.coopcloud.tech/coop-cloud/go-abra)](https://goreportcard.com/report/git.coopcloud.tech/coop-cloud/go-abra)
|
|
|
|
> Work-In-Progress port of [abra](https://git.coopcloud.tech/coop-cloud/abra) to Golang.
|
|
|
|
See [abra](https://git.coopcloud.tech/coop-cloud/abra) for more. See our progress in [TODO.md](TODO.md).
|
|
|
|
## Install
|
|
|
|
### Arch-based Linux Distros
|
|
|
|
[abra (coming-soon)](https://aur.archlinux.org/packages/abra/) or for the latest version on git [abra-git](https://aur.archlinux.org/packages/abra-git/)
|
|
|
|
```sh
|
|
yay -S abra-git # or abra
|
|
```
|
|
|
|
### Debian-based Linux Distros
|
|
|
|
__Coming Soon__
|
|
|
|
### Homebrew
|
|
|
|
__Coming Soon__
|
|
|
|
### Build from source
|
|
|
|
```sh
|
|
git clone https://git.coopcloud.tech/coop-cloud/go-abra
|
|
cd go-abra
|
|
go env -w GOPRIVATE=coopcloud.tech
|
|
make install
|
|
```
|
|
|
|
The abra binary will be in `$GOPATH/bin`.
|
|
|
|
## Hacking
|
|
|
|
Install direnv, run `cp .envrc.sample .envrc`, then run `direnv allow` in this directory. This will set coopcloud repos as private due to [this bug.](https://git.coopcloud.tech/coop-cloud/coopcloud.tech/issues/20#issuecomment-8201). Or you can run `go env -w GOPRIVATE=coopcloud.tech` but I'm not sure how persistent this is.
|
|
|
|
Install [Go >= 1.16](https://golang.org/doc/install) and then:
|
|
|
|
- `make build` to build
|
|
- `./abra` to run commands
|
|
- `make test` will run tests
|
|
|
|
Our [Drone CI configuration](.drone.yml) runs a number of sanity on each pushed commit. See the [Makefile](./Makefile) for more handy targets.
|
|
|
|
Please use the [conventional commit format](https://www.conventionalcommits.org/en/v1.0.0/) for your commits so we can automate our change log.
|
|
|
|
## Fork maintenance
|
|
|
|
We maintain a fork of [godotenv](https://github.com/Autonomic-Cooperative/godotenv) for two features:
|
|
|
|
1. multi-line env var support
|
|
2. inline comment parsing
|
|
|
|
You can upgrade the version here by running `go get github.com/Autonomic-Cooperative/godotenv@<commit>` where `<commit>` is the
|
|
latest commit you want to pin to. We are aiming to migrate to YAML format for the environment configuration, so this should only
|
|
be a temporary thing.
|