Go to file
2017-11-11 22:54:25 +01:00
.gitignore ignore .realize 2017-08-31 09:42:23 +02:00
.travis.yml support for go intermediate version 2017-10-16 15:23:52 +02:00
bindata.go v1.5.1r2 2017-11-05 22:38:26 +01:00
cmd_test.go commands initialization moved 2017-10-31 13:28:58 +01:00
cmd.go v1.5.1r2 2017-11-05 22:38:26 +01:00
CONTRIBUTING.md Added CONTRIBUTING.md 2017-10-16 14:47:45 +02:00
exec_test.go vet fixed 2017-10-17 12:00:15 +02:00
exec.go exec name collision 2017-11-11 22:53:29 +01:00
Gopkg.lock huge code refactoring, performance improved 2017-10-08 23:09:45 +02:00
Gopkg.toml dep updated 2017-04-26 16:09:23 +02:00
LICENSE realize dev 2016-07-12 10:18:02 +02:00
notify_test.go polling interval 2017-10-16 22:21:42 +02:00
notify.go method comments 2017-11-11 22:54:25 +01:00
README.md go clean and fix support 2017-11-05 22:53:31 +01:00
realize_test.go tests updated 2017-10-22 23:54:02 +02:00
realize.go go clean and fix support 2017-11-05 22:53:31 +01:00
server_test.go partial tests 2017-10-15 21:35:50 +02:00
server.go print removed 2017-11-05 22:44:49 +01:00
settings_test.go commands initialization moved 2017-10-31 13:28:58 +01:00
settings_unix.go Merge branch 'dev' of https://github.com/tockins/realize into dev 2017-11-05 19:28:41 +01:00
settings_windows.go v1.5.1r2 2017-11-05 22:38:26 +01:00
settings.go Merge branch 'dev' of https://github.com/tockins/realize into dev 2017-11-05 19:28:41 +01:00
style_test.go partial tests 2017-10-15 21:35:50 +02:00
style.go huge code refactoring, performance improved 2017-10-08 23:09:45 +02:00
utils_test.go tests updated 2017-10-22 23:54:02 +02:00
utils.go fmt 2017-10-31 13:28:21 +01:00
watcher_test.go tests updated 2017-10-22 23:54:02 +02:00
watcher.go Merge branch 'dev' of https://github.com/tockins/realize into dev 2017-11-05 19:28:28 +01:00

Realize

GoDoc Travis AUR Gitter Go Report Card OpenCollective OpenCollective

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.

Content

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, fix, clean)
  • Web panel for a smart control of the workflow

Next features and informations

  • More use cases
  • Complete 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) useful for cli scripts

Get started

Run this to get and install:

$ go get github.com/tockins/realize

Commands available

  • Run

    From project/projects root execute:

    $ realize start
    

    It will create a realize.yaml file if it doesn't exist already, 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
    --no-config                 -> Ignore an existing config / skip the creation of a new one
    

    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/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

    Start command can be used with a project from its working directory without make a config file (--no-config).

    $ realize start --path="/print/printer" --run yourParams --yourFlags // right
    $ realize start yourParams --yourFlags --path="/print/printer" --run // wrong
    
  • Add

    Add a project to an existing config file or create a new one.

    "Add" supports the same parameters of "Start" 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 supported options

    $ realize init
    
  • Remove

    Remove a project by its name

    $ realize remove --name="myname"
    
  • 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:
            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
      environment:            // 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 differents build tool
        generate:
            status: true
        install:
            status: true
        build:
            status: false
            method: gb build    // support differents build tool
            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
          extensions:                  // watched extensions
          - go
          - html
          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
          errorOutputPattern: mypattern   //custom error pattern
    

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]