Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tockins/realize

Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading.
https://github.com/tockins/realize

build-system build-tool filewatcher go go-tools golang golang-application golang-package livereload task-runner watcher

Last synced: 3 months ago
JSON representation

Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading.

Awesome Lists containing this project

README

        





Build status
GoReport
GoDoc
License
Gitter




#1 Golang live reload and task runner





## Content

### - ⭐️ [Top Features](#top-features)
### - πŸ’ƒπŸ» [Get started](#get-started)
### - πŸ“„ [Config sample](#config-sample)
### - πŸ“š [Commands List](#commands-list)
### - πŸ›  [Support and Suggestions](#support-and-suggestions)
### - 😎 [Backers and Sponsors](#backers)

## 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! πŸ•ΊπŸ»](https://github.com/oxequa/realize/issues/new)

## 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](https://github.com/oxequa/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](https://gitter.im/oxequa/realize)

⭐️ Suggest a new [Feature](https://github.com/oxequa/realize/issues/new)

## Backers

Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/realize#backer)]




## Sponsors

Become a sponsor and get your logo here! [[Become a sponsor](https://opencollective.com/realize#sponsor)]