realize/README.md

286 lines
17 KiB
Markdown
Raw Normal View History

2016-08-17 14:56:06 +00:00
## Realize
2016-08-21 12:23:28 +00:00
2016-11-11 16:24:18 +00:00
[![GoDoc](https://img.shields.io/badge/documentation-godoc-blue.svg)](https://godoc.org/github.com/tockins/realize)
2016-08-23 17:07:09 +00:00
[![TeamCity CodeBetter](https://travis-ci.org/tockins/realize.svg?branch=v1)](https://travis-ci.org/tockins/realize)
2016-08-17 19:34:20 +00:00
[![AUR](https://img.shields.io/aur/license/yaourt.svg?maxAge=2592000?style=flat-square)](https://raw.githubusercontent.com/tockins/realize/v1/LICENSE)
2016-08-19 21:48:22 +00:00
[![](https://img.shields.io/badge/realize-examples-yellow.svg)](https://github.com/tockins/realize-examples)
2016-08-21 15:18:33 +00:00
[![Join the chat at https://gitter.im/tockins/realize](https://badges.gitter.im/tockins/realize.svg)](https://gitter.im/tockins/realize?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2016-08-23 20:21:15 +00:00
[![Go Report Card](https://goreportcard.com/badge/github.com/tockins/realize)](https://goreportcard.com/report/github.com/tockins/realize)
[![OpenCollective](https://opencollective.com/realize/backers/badge.svg)](#backers)
[![OpenCollective](https://opencollective.com/realize/sponsors/badge.svg)](#sponsors)
2016-08-23 19:54:39 +00:00
2017-08-08 15:19:24 +00:00
<p align="center">
2017-08-08 15:17:52 +00:00
<img src="http://i.imgur.com/pkMDtrl.png" width="350px">
2017-08-08 15:19:24 +00:00
</p>
2016-08-18 08:10:59 +00:00
2017-08-08 22:24:56 +00:00
#### Realize is the Go tool that is focused to speed up and improve developers workflow.
2016-08-18 08:10:59 +00:00
2017-08-11 19:00:56 +00:00
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.
2016-07-24 23:02:18 +00:00
2017-08-08 22:06:30 +00:00
<p align="center">
<img src="http://i.imgur.com/KpMSLnE.png">
</p>
2016-08-17 23:08:10 +00:00
2017-08-11 19:48:54 +00:00
#### Wiki
2017-08-11 19:50:19 +00:00
- [Features list](#features)
2017-08-11 19:48:54 +00:00
- [Getting Started](#installation)
- [Config sample](#config-sample) - Sample config file
- [Run cmd](#run) - Run a project
- [Add cmd](#add) - Add a new project
- [Init cmd](#init) - Make a custom config step by step
- [Remove cmd](#remove) - Remove a project
- [List cmd](#list) - List the projects
- [Support](#support-us-and-suggest-an-improvement)
- [Backers and Sponsors](#backers)
2016-08-17 19:34:20 +00:00
#### Features
2017-08-11 19:00:56 +00:00
- 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
2017-03-13 00:04:58 +00:00
2017-06-19 11:15:46 +00:00
v 1.5
2017-04-01 21:32:40 +00:00
2017-08-11 19:00:56 +00:00
- [ ] Use cases
- [ ] Tests
2017-08-08 15:13:35 +00:00
- [ ] Watch gopath dependencies
- [ ] Web panel, download logs
- [ ] Multiple configurations (dev, production)
- [ ] Support to ignore paths and files in gititnore
2017-04-01 21:33:39 +00:00
- [ ] Input redirection (wait for an input and redirect)
2017-04-01 21:32:40 +00:00
2017-08-05 14:03:43 +00:00
#### Installation
2017-03-13 00:04:58 +00:00
Run this to get/install:
```
$ go get github.com/tockins/realize
```
2017-08-11 19:00:56 +00:00
#### Commands available
2017-03-13 00:04:58 +00:00
2017-04-01 18:37:50 +00:00
- ##### Run
2017-04-01 18:42:33 +00:00
From project/projects root execute:
```
$ realize run
```
2017-08-07 21:37:45 +00:00
It will create a realize.yaml file if it doesn't exist already, add the working directory as project and run the pipeline.
2017-04-01 18:42:33 +00:00
The Run command supports the following custom parameters:
```
2017-06-19 11:29:47 +00:00
--name="name" -> Run by name on existing configuration
2017-04-01 18:42:33 +00:00
--path="realize/server" -> Custom Path, if not specified takes the working directory name
--build -> Enable go build
--no-run -> Disable go run
--no-install -> Disable go install
--no-config -> Ignore an existing config / skip the creation of a new one
--server -> Enable the web server
--legacy -> Enable legacy watch instead of Fsnotify watch
--generate -> Enable go generate
--test -> Enable go test
2017-08-08 21:02:27 +00:00
--open -> Open in default browser
2017-04-01 18:42:33 +00:00
```
Examples:
```
$ realize run
$ realize run --path="mypath"
$ realize run --name="My Project" --build
$ realize run --path="realize" --no-run --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 can run 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
```
2017-04-01 18:37:50 +00:00
- ##### Add
2017-04-01 18:42:33 +00:00
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
```
2017-03-13 00:04:58 +00:00
2017-04-01 18:37:50 +00:00
- ##### Init
2017-04-01 18:42:33 +00:00
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
```
2017-03-13 00:11:05 +00:00
2017-04-01 18:37:50 +00:00
- ##### Remove
2017-04-01 18:42:33 +00:00
Remove a project by its name
```
$ realize remove --name="myname"
```
2017-03-13 00:04:58 +00:00
2017-04-01 18:37:50 +00:00
- ##### List
2017-04-01 18:42:33 +00:00
Projects list in cli
```
$ realize list
```
2016-08-30 13:58:02 +00:00
2017-04-01 18:37:50 +00:00
- #### Color reference
2017-04-01 18:42:33 +00:00
- Blue: outputs of the project
- Red: errors
- Magenta: times or changed files
- Green: successfully completed action
2016-08-24 15:50:52 +00:00
2017-04-01 18:37:50 +00:00
- #### Config sample
2017-04-01 18:42:33 +00:00
For more examples check [Realize Examples](https://github.com/tockins/realize-examples)
2017-08-08 21:05:27 +00:00
```
settings:
2017-08-11 19:00:56 +00:00
legacy:
status: true // enable polling watcher instead fsnotifiy
2017-08-08 21:05:27 +00:00
interval: 10s // polling interval
2017-08-11 19:00:56 +00:00
resources: // files names
2017-08-08 21:05:27 +00:00
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
2017-08-11 19:00:56 +00:00
environment: // env variables available at startup
2017-08-08 21:05:27 +00:00
test: test
myvar: value
2017-08-11 19:00:56 +00:00
commands: // go commands supported
2017-08-08 21:05:27 +00:00
vet: true
fmt: true
test: false
generate: false
bin:
status: true
build:
status: false
2017-08-11 19:00:56 +00:00
args: // additional params for the command
2017-08-08 21:05:27 +00:00
- -race
run: true
2017-08-11 19:00:56 +00:00
args: // arguments to pass at the project
2017-08-08 21:05:27 +00:00
- --myarg
watcher:
preview: false // watched files preview
paths: // watched paths
- /
ignore_paths: // ignored paths
- vendor
exts: // watched extensions
- .go
2017-08-11 19:00:56 +00:00
scripts: // custom scripts
- type: before // type (after/before)
2017-08-08 21:05:27 +00:00
command: ./ls -l // command
2017-08-11 19:00:56 +00:00
changed: true // relaunch when a file change
2017-08-08 21:05:27 +00:00
startup: true // launch at start
- type: after
command: ./ls
changed: true
2017-08-11 19:00:56 +00:00
streams: // save logs/errors/outputs on files
2017-08-08 21:05:27 +00:00
file_out: false
file_log: false
file_err: false
```
2017-08-08 22:06:30 +00:00
2017-08-05 14:03:43 +00:00
#### Support us and suggest an improvement
2016-08-21 15:17:25 +00:00
- Chat with us [Gitter](https://gitter.im/tockins/realize)
2017-04-01 18:42:33 +00:00
- Suggest a new [Feature](https://github.com/tockins/realize/issues/new)
#### Backers
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/realize#backer)]
<a href="https://opencollective.com/realize/backer/0/website" target="_blank"><img src="https://opencollective.com/realize/backer/0/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/1/website" target="_blank"><img src="https://opencollective.com/realize/backer/1/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/2/website" target="_blank"><img src="https://opencollective.com/realize/backer/2/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/3/website" target="_blank"><img src="https://opencollective.com/realize/backer/3/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/4/website" target="_blank"><img src="https://opencollective.com/realize/backer/4/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/5/website" target="_blank"><img src="https://opencollective.com/realize/backer/5/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/6/website" target="_blank"><img src="https://opencollective.com/realize/backer/6/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/7/website" target="_blank"><img src="https://opencollective.com/realize/backer/7/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/8/website" target="_blank"><img src="https://opencollective.com/realize/backer/8/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/9/website" target="_blank"><img src="https://opencollective.com/realize/backer/9/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/10/website" target="_blank"><img src="https://opencollective.com/realize/backer/10/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/11/website" target="_blank"><img src="https://opencollective.com/realize/backer/11/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/12/website" target="_blank"><img src="https://opencollective.com/realize/backer/12/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/13/website" target="_blank"><img src="https://opencollective.com/realize/backer/13/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/14/website" target="_blank"><img src="https://opencollective.com/realize/backer/14/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/15/website" target="_blank"><img src="https://opencollective.com/realize/backer/15/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/16/website" target="_blank"><img src="https://opencollective.com/realize/backer/16/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/17/website" target="_blank"><img src="https://opencollective.com/realize/backer/17/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/18/website" target="_blank"><img src="https://opencollective.com/realize/backer/18/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/19/website" target="_blank"><img src="https://opencollective.com/realize/backer/19/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/20/website" target="_blank"><img src="https://opencollective.com/realize/backer/20/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/21/website" target="_blank"><img src="https://opencollective.com/realize/backer/21/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/22/website" target="_blank"><img src="https://opencollective.com/realize/backer/22/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/23/website" target="_blank"><img src="https://opencollective.com/realize/backer/23/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/24/website" target="_blank"><img src="https://opencollective.com/realize/backer/24/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/25/website" target="_blank"><img src="https://opencollective.com/realize/backer/25/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/26/website" target="_blank"><img src="https://opencollective.com/realize/backer/26/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/27/website" target="_blank"><img src="https://opencollective.com/realize/backer/27/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/28/website" target="_blank"><img src="https://opencollective.com/realize/backer/28/avatar.svg"></a>
<a href="https://opencollective.com/realize/backer/29/website" target="_blank"><img src="https://opencollective.com/realize/backer/29/avatar.svg"></a>
#### Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/realize#sponsor)]
<a href="https://opencollective.com/realize/sponsor/0/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/1/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/2/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/3/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/4/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/5/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/6/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/7/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/8/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/9/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/9/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/10/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/10/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/11/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/11/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/12/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/12/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/13/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/13/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/14/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/14/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/15/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/15/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/16/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/16/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/17/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/17/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/18/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/18/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/19/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/19/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/20/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/20/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/21/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/21/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/22/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/22/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/23/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/23/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/24/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/24/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/25/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/25/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/26/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/26/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/27/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/27/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/28/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/28/avatar.svg"></a>
<a href="https://opencollective.com/realize/sponsor/29/website" target="_blank"><img src="https://opencollective.com/realize/sponsor/29/avatar.svg"></a>