152 lines
4.1 KiB
Markdown
152 lines
4.1 KiB
Markdown
## Quickstart
|
|
### Install
|
|
```
|
|
go install github.com/abs3ntdev/haunt@latest
|
|
```
|
|
|
|
or
|
|
|
|
```
|
|
git clone https://github.com/abs3ntdev/haunt
|
|
cd haunt
|
|
make build && sudo make install
|
|
```
|
|
|
|
#### aur
|
|
|
|
```
|
|
yay -S haunt-go-git
|
|
```
|
|
|
|
### Completions
|
|
completions will be automatically installed if you used the Makefile, if you did not you can generate completions with `haunt completion [bash/fish/powershell/zsh]`
|
|
|
|
for example: `haunt completion zsh > _haunt`
|
|
|
|
you can also source the output of the completion command directly in your .zshrc with:\
|
|
`source <(haunt completion zsh) && compdef _haunt haunt`
|
|
|
|
## Commands List
|
|
|
|
### Init Command
|
|
This command will generate a .haunt.yaml with sane default for your current project/projects.\
|
|
If there is a main.go in the root directory it will be added along with any directories inside the relative path `cmd`
|
|
|
|
haunt init
|
|
|
|
|
|
### Run Command
|
|
|
|
```
|
|
haunt run
|
|
```
|
|
|
|
the run command allows for specifying projects by name, all provided will be ran according to the config file:
|
|
|
|
Some examples:
|
|
|
|
haunt run
|
|
haunt run server api
|
|
|
|
### Add Command
|
|
Add a project, the same defaults init uses will be used for new projects unless flags are provided.
|
|
|
|
haunt add [name] [--flags]
|
|
|
|
Possible flags are:
|
|
|
|
-b, --build Enable go build
|
|
-f, --fmt Enable go fmt
|
|
-g, --generate Enable go generate
|
|
-h, --help help for add
|
|
-i, --install Enable go install (default true)
|
|
-p, --path string Project base path (default "./")
|
|
-r, --run Enable go run (default true)
|
|
-t, --test Enable go test
|
|
-v, --vet Enable go vet
|
|
|
|
|
|
### Remove Command
|
|
Remove a project by its name
|
|
|
|
haunt remove [name]
|
|
|
|
|
|
## Config sample
|
|
|
|
settings:
|
|
legacy:
|
|
force: true // force polling watcher instead fsnotifiy
|
|
interval: 100ms // polling interval
|
|
resources: // files names
|
|
outputs: outputs.log
|
|
logs: logs.log
|
|
errors: errors.log
|
|
server:
|
|
status: false // server status
|
|
open: false // open browser at start
|
|
host: localhost // server host
|
|
port: 5001 // server port
|
|
schema:
|
|
- name: coin
|
|
path: cmd/coin // project path
|
|
env: // env variables for run
|
|
test: test
|
|
myvar: value
|
|
commands: // go commands supported
|
|
vet:
|
|
status: true
|
|
fmt:
|
|
status: true
|
|
args:
|
|
- -s
|
|
- -w
|
|
test:
|
|
status: true
|
|
method: gb test // support different build tools
|
|
generate:
|
|
status: true
|
|
install:
|
|
status: true
|
|
build:
|
|
status: false
|
|
method: gb build // support differents build tool
|
|
args: // additional params for the command
|
|
- -race
|
|
run:
|
|
status: true
|
|
args: // arguments to pass at the project
|
|
- --myarg
|
|
watcher:
|
|
paths: // watched paths are relative to directory you run haunt in
|
|
- src
|
|
- cmd/coin
|
|
ignore_paths: // ignored paths
|
|
- vendor
|
|
extensions: // watched extensions
|
|
- go
|
|
- html
|
|
scripts:
|
|
- type: before
|
|
command: echo before global
|
|
global: true
|
|
output: true
|
|
env: // env variables per script
|
|
test: test
|
|
myvar: value
|
|
- type: before
|
|
command: echo before change
|
|
output: true
|
|
env: // env variables per script
|
|
test: othertest
|
|
myvar: othervalue
|
|
- type: after
|
|
command: echo after change
|
|
output: true
|
|
env: // env variables per script
|
|
key: 1
|
|
- type: after
|
|
command: echo after global
|
|
global: true
|
|
output: true
|