π realize - Awesome Go Library for Build Automation
Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths.
Detailed Description of realize
#1 Golang live reload and task runner
Content
- βοΈ Top Features
- ππ» Get started
- π Config sample
- π Commands List
- π Support and Suggestions
- π Backers and Sponsors
Top Features
- High performance Live Reload.
- Manage multiple projects at the same time.
- Watch by custom extensions and paths.
- All Go commands supported.
- Switch between different Go builds.
- Custom env variables for project.
- Execute custom commands before and after a file changes or globally.
- Export logs and errors to an external file.
- Step-by-step project initialization.
- Redesigned panel that displays build errors, console outputs and warnings.
- Any suggestion? Suggest an amazing feature! πΊπ»
Supporters
Quickstart
go get github.com/oxequa/realize
Commands List
Run Command
From project/projects root execute:
$ realize start
It will create a .realize.yaml file if doesn't already exist, add the working directory as project and run your workflow.
start command supports the following custom parameters:
--name="name" -> Run by name on existing configuration
--path="realize/server" -> Custom Path (if not specified takes the working directory name)
--generate -> Enable go generate
--fmt -> Enable go fmt
--test -> Enable go test
--vet -> Enable go vet
--install -> Enable go install
--build -> Enable go build
--run -> Enable go run
--server -> Enable the web server
--open -> Open web ui in default browser
--no-config -> Ignore an existing config / skip the creation of a new one
Some examples:
$ realize start
$ realize start --path="mypath"
$ realize start --name="realize" --build
$ realize start --path="realize" --run --no-config
$ realize start --install --test --fmt --no-config
$ realize start --path="/Users/username/go/src/github.com/oxequa/realize-examples/coin/"
If you want, you can specify additional arguments for your project:
β
$ realize start --path="/print/printer" --run yourParams --yourFlags // right
β $ realize start yourParams --yourFlags --path="/print/printer" --run // wrong
β οΈ The additional arguments must go after the params:
π‘ The start command can be used with a project from its working directory without make a config file (--no-config).
Add Command
Add a project to an existing config file or create a new one.
$ realize add
π‘ add supports the same parameters as start command.
Init Command
This command allows you to create a custom configuration step-by-step.
$ realize init
π‘ init is the only command that supports a complete customization of all supported options.
Remove Command
Remove a project by its name
$ realize remove --name="myname"
Color reference
π BLUE: Outputs of the project.
π RED: Errors.
π PURPLE: Times or changed files.
π GREEN: Successfully completed action.
Config sample
*** there is no more a .realize dir, but only a .realize.yaml file ***
For more examples check: Realize Examples
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: coin // project path
env: // env variables available at startup
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
- /
ignore_paths: // ignored paths
- vendor
extensions: // watched extensions
- go
- html
scripts:
- type: before
command: echo before global
global: true
output: true
- type: before
command: echo before change
output: true
- type: after
command: echo after change
output: true
- type: after
command: echo after global
global: true
output: true
errorOutputPattern: mypattern //custom error pattern
Support and Suggestions
π¬ Chat with us Gitter
βοΈ Suggest a new Feature
Backers
Support us with a monthly donation and help us continue our activities. [Become a backer]
Sponsors
Become a sponsor and get your logo here! [Become a sponsor]