7e250a5bd6 | ||
---|---|---|
.gitignore | ||
.travis.yml | ||
Gopkg.lock | ||
Gopkg.toml | ||
LICENSE | ||
README.md | ||
bindata.go | ||
cmd.go | ||
cmd_test.go | ||
exec.go | ||
exec_test.go | ||
notify.go | ||
notify_test.go | ||
realize.go | ||
realize_test.go | ||
server.go | ||
server_test.go | ||
settings.go | ||
settings_test.go | ||
settings_windows.go | ||
style.go | ||
style_test.go | ||
utils.go | ||
utils_test.go | ||
watcher.go | ||
watcher_test.go |
README.md
Realize
Realize is the Go tool that is focused to speed up and improve developers workflow.
Automate the most recurring operations needed for development, define what you need only one time, integrate additional tools of third party, define custom cli commands and reload projects at each file change without stop to write code.
Various operations can be programmed for each project, which can be executed at startup, at stop, and at each file change.
Wiki
- Features list
- Getting Started
- Config sample - Sample config file
- Run cmd - Run a project
- Add cmd - Add a new project
- Init cmd - Make a custom config step by step
- Remove cmd - Remove a project
- List cmd - List the projects
- Support
- Backers and Sponsors
Features
- Two watcher types: file system and polling
- Logs and errors files
- Projects setup step by step
- After/Before custom commands
- Custom environment variables
- Multiple projects at the same time
- Custom arguments to pass at each project
- Docker support (only with polling watcher)
- Live reload on file change (extensions and paths customizable)
- Support for most go commands (install, build, run, vet, test, fmt and much more)
- Web panel for a smart control of the workflow
Next features and informations
- Use cases
- Tests
- Watch gopath dependencies
- Web panel, download logs
- Multiple configurations (dev, production)
- Support to ignore paths and files in gititnore
- Input redirection (wait for an input and redirect)
Installation
Run this to get/install:
$ go get github.com/tockins/realize
Commands available
-
Run
From project/projects root execute:
$ realize run
It will create a realize.yaml file if it doesn't exist already, add the working directory as project and run the pipeline.
The Run 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 --install -> Enable go install --build -> Enable go build --run -> Enable go run --server -> Enable the web server --legacy -> Enable legacy watch instead of Fsnotify watch --no-config -> Ignore an existing config / skip the creation of a new one
Examples:
$ realize run $ realize run --path="mypath" $ realize run --name="My Project" --build $ realize run --path="realize" --run --no-config $ realize run --install --test --fmt --no-config $ realize run --path="/Users/alessio/go/src/github.com/tockins/realize-examples/coin/"
If you want, you can specify additional arguments for your project.
The additional arguments must go after the params
Run command can start a project from its working directory without make a config file (--no-config).
$ realize run --path="/print/printer" --no-run yourParams --yourFlags // right $ realize run yourParams --yourFlags --path="/print/printer" --no-run // wrong
-
Add
Add a project to an existing config file or create a new one without run the pipeline.
"Add" supports the same parameters of the "Run" command.
$ realize add
-
Init
Like add, but with this command you can create a configuration step by step and customize each option.
Init is the only command that supports a complete customization of all the options supported
$ realize init
-
Remove
Remove a project by its name
$ realize remove --name="myname"
-
List
Projects list in cli
$ realize list
-
Color reference
- Blue: outputs of the project
- Red: errors
- Magenta: times or changed files
- Green: successfully completed action
-
Config sample
For more examples check Realize Examples
settings: legacy: status: true // enable polling watcher instead fsnotifiy interval: 10s // 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 projects: - name: coin path: coin // project path environment: // env variables available at startup test: test myvar: value commands: // go commands supported vet: true fmt: true test: false generate: false bin: status: true build: status: false args: // additional params for the command - -race run: true args: // arguments to pass at the project - --myarg watcher: preview: false // watched files preview paths: // watched paths - / ignore_paths: // ignored paths - vendor exts: // watched extensions - .go scripts: // custom scripts - type: before // type (after/before) command: ./ls -l // command changed: true // relaunch when a file change startup: true // launch at start - type: after command: ./ls changed: true streams: // save logs/errors/outputs on files file_out: false file_log: false file_err: false ```
Support us and suggest an improvement
Backers
Support us with a monthly donation and help us continue our activities. [Become a backer]
Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]