realize/README.md

3.9 KiB

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 a project/projects:

    $ realize add 
    

    If not exists already, It will create a realize.config.yaml file.

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

    --name="Project Name"  -> Name, if not specified takes the working directory name
    --base="server"        -> Base Path, if not specified takes the working directory name    
    --build                -> Go build, if not specified takes "false"    
    --bin                  -> Go intall, if not specified takes "true"    
    --run                  -> Go run, if not specified takes "true"  
    

    Add a project whenever you want.

    $ realize add
    
    $ realize add --base="mypath"
    
    $ realize add --name="My Project" --build
    
    $ realize add --name="My Project" --base="/projects/package" --build
    
    $ realize add --name="My Project" --base="projects/package" --build --run
    
  • 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
  • Windows testing
  • Execution times for build/install
  • Go doc
  • Support for server start/stop
  • Stream projects output
  • Cli feedback