Go to file
alessio f74a700c64 cmd run fixed 2017-07-27 21:33:28 +02:00
server fix lints: error strings should not be capitalized or end with punctuation or a newline 2017-04-15 23:47:29 +09:00
settings code review 2017-07-27 20:48:16 +02:00
style refactoring: settings/colors.go -> style/style.go 2017-04-15 23:55:24 +09:00
watcher code review 2017-07-27 20:48:16 +02:00
.gitignore server assets ignored 2016-10-14 11:04:12 +02:00
.travis.yml 1.6 support removed 2017-04-15 19:09:48 +02:00
Gopkg.lock dep updated 2017-04-26 16:09:23 +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
README.md doc fixed 2017-06-19 13:35:30 +02:00
realize.go cmd run fixed 2017-07-27 21:33:28 +02:00

README.md

Realize

GoDoc TeamCity CodeBetter AUR Join the chat at https://gitter.im/tockins/realize Go Report Card

Logo

A Go build system with file watchers, output streams and live reload. Run, build and watch file changes with custom paths

Preview

Features

  • Highly customizable
  • Config your project Step by Step
  • Build, Install, Test, Fmt, Generate and Run at the same time
  • Live reload on file changes (re-build, re-install...)
  • Watch custom paths and specific file extensions
  • Watch by FsNotify or by polling
  • Support for multiple projects
  • Output streams and error logs (support for save on a file)
  • Web Panel (projects list, config settings, logs)

v 1.5

  • Watch dependencies options
  • Input redirection (wait for an input and redirect)
  • Web panel full support
  • Multiple configurations
  • GoMobile support ?
  • Ignore path and files in gititnore ?

Wiki

Run this to get/install:

$ go get github.com/tockins/realize

Commands

  • Run

    From project/projects root execute:

    $ realize run
    

    It will create a realize.yaml file if it doesn't exist already, adds 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    
    --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
    

    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
    
  • 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           // legacy watch status
         interval: 10s          // polling interval
        resources:              // files names related to streams
          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
        commands: 
          vet: true
          fmt: true
          test: false
          generate: false
          bin:
            status: true
          build:
            status: false
            args:
              - -race
          run: true
        args:
          - --myarg
        watcher:
          preview: false         // watched files preview
          paths:                 // watched paths 
          - /
          ignore_paths:          // ignored paths 
          - vendor
          exts:                  // watched extensions
          - .go
          scripts:
          - type: before         // type 
            command: ./ls -l     // command
            changed: true        // relaunch when a file changes 
            startup: true        // launch at start
          - type: after
            command: ./ls
            changed: true
        streams:                 // enable/disable streams 
           cli_out: true
           file_out: false
           file_log: false
           file_err: false    
    
      ```                    
    
Support us and suggest an improvement