github

tockins / realize

  • воскресенье, 21 августа 2016 г. в 03:13:39
https://github.com/tockins/realize

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



Realize

GoDoc TeamCity CodeBetter AUR

Logo

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

Preview

Features

  • Build, Install, Test and Run at the same time
  • Live reload on file changes (re-build, re-install and re-run)
  • Watch custom paths
  • Watch specific file extensions
  • Multiple projects support
  • Output streams
  • Execution times

Installation and usage

  • Run this for get/install it:

    $ go get github.com/tockins/realize
    
  • From the root of your project/projects:

    $ realize start 
    

    Will create a realize.config.yaml file with a default settings.

    You can even pass custom parameters for your project. This is a list of the supported fields:

    --name="Project Name"  -> Name, if not specified takes "Sample App"    
    --base="server"        -> Base Path, if not specified takes "/"    
    --build="true"         -> Go build, if not specified takes "false"    
    --bin="false"          -> Base Path, if not specified takes "true"    
    --run="false"          -> Base Path, if not specified takes "true"    
    
    $ realize start --name="Web Server" --base="server"
    
  • Add another project whenever you want

    $ realize add
    

    Or

    $ realize add --name="Project Name" --build="true"
    
  • Remove a project by his name

    $ realize remove --name="Project Name"
    
  • Lists all projects

    $ realize list
    
  • Build, Run and watch file changes. Realize will re-build and re-run your projects on each changes

    $ realize run 
    

Config file example

  • For more examples check Realize Examples

    version: "1.0"
    projects:
        - app_name: App One     -> name
          app_path: one         -> root path
          app_run: true         -> enable/disable go run (require app_bin)
          app_bin: true         -> enable/disable go install
          app_build: false      -> enable/disable go build
          app_watcher:
            preview: true       -> prints the observed files on startup
            paths:              -> paths to observe for live reload
            - /
            ignore_paths:       -> paths to ignore
            - vendor
            - bin
            exts:               -> file extensions to observe for live reload
            - .go
        - app_name: App Two     -> another project
          app_path: two
          app_run: true
          app_build: true
          app_bin: true
          app_watcher:
            paths:
            - /
            ignore_paths:
            - vendor
            - bin
            exts:
            - .go 
    

To do

  • Cli start, remove, add, list, run
  • Remove duplicate projects
  • Support for multiple projects
  • Watcher files preview
  • Support for directories with duplicates names
  • Unit test
  • Go test support
  • Cli fast run
  • Execution times for build/install
  • Go doc
  • Support for server start/stop
  • Stream projects output
  • Cli feedback