Go to file
alessio 3b0ae64d02 config example updated 2017-06-19 13:28:21 +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 #58 fixed 2017-06-16 11:15:56 +02:00
style refactoring: settings/colors.go -> style/style.go 2017-04-15 23:55:24 +09:00
watcher Merge pull request #59 from nkovacs/patch-1 2017-06-19 12:54:03 +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 config example updated 2017-06-19 13:28:21 +02:00
realize.go #56 fixed 2017-06-19 12:08:51 +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:

    --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: true           // server status         
           open: false            // auto open in browser on start
           host: localhost        // server host  
           port: 5001             // server port
       projects:
       - name: realize    
         path: .                  // project path
         fmt: true                
         generate: false
         test: false
         bin: true
         build: false
         run: false
         params:                  // additional params
         - --myarg
         watcher:
           preview: false         // wached files preview
           paths:                 // paths to watch
           - /
           ignore_paths:          // paths to ignore
           - vendor
           exts:                  // exts to watch
           - .go
           scripts:               // custom commands after/before
           - type: after          // type after/before
             command: go run mycmd after  // command
             path: ""             //  run from a custom path or from the working dir
         streams:                 // enable/disable streams 
           cli_out: true
           file_out: false
           file_log: false
           file_err: false
    
      ```                      
    

    This is the configuration used for develop realize

      ```
      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
          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 
            startuo: 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