Skip to content
/ realize Public
forked from oxequa/realize

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

License

Notifications You must be signed in to change notification settings

ae0000/realize

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

What's new

v1.2
  • Windows support
  • Go generate support
  • Bugs fix
  • Web panel errors log improved
  • Refactoring
  • Web panel edit settings, partial

Features

  • Build, Install, Test, Fmt 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
  • Highly customizable
  • Fast run

Installation and usage

  • Run this to get/install:

    $ go get github.com/tockins/realize
    
  • From project/projects root execute:

    $ realize add
    

    It will create a realize.yaml file if it doesn't exist already and adds the working directory as the project.

    Otherwise if a config file already exists it adds the working project to the existing config file.

    The add command supports the following custom parameters:

    --name="Project Name"   -> Name, if not specified takes the working directory name
    --path="server"         -> Custom Path, if not specified takes the working directory name    
    --build                 -> Enables the build   
    --test                  -> Enables the tests  
    --no-bin                -> Disables the installation
    --no-run                -> Disables the run
    --no-fmt                -> Disables the fmt (go fmt)
    --no-server             -> Disables the web panel (port :5000)
    --open                  -> Open the web panel in a new browser window
    

    Examples:

    $ realize add
    
    $ realize add --path="mypath"
    
    $ realize add --name="My Project" --build
    
    $ realize add --name="My Project" --path="/projects/package" --build
    
    $ realize add --name="My Project" --path="projects/package" --build --no-run
    
    $ realize add --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 options of "Realize"

    $ realize add --path="/print/printer" --no-run yourParams --yourFlags // correct
    
    $ realize add yourParams --yourFlags --path="/print/printer" --no-run // wrong
    
  • Remove a project by its 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 change.

    $ realize run
    

    Run can also launch a project from its working directory with or without make a config file (--no-config option). It supports the following custom parameters:

    --path="server"         -> Custom Path, if not specified takes the working directory name 
    --build                 -> Enables the build   
    --test                  -> Enables the tests   
    --config                -> Take the defined settings if exist a config file  
    --no-bin                -> Disables the installation
    --no-run                -> Disables the run
    --no-fmt                -> Disables the fmt (go fmt)
    --no-server             -> Disables the web panel (port :5000)
    --no-config             -> Doesn't create any configuration files
    --open                  -> Open the web panel in a new browser window 
    

    And additional arguments as the "add" command.

    $ realize run --no-run yourParams --yourFlags // correct
    
    $ realize run yourParams --yourFlags --no-run // wrong
    
    $ realize run --path="/Users/alessio/go/src/github.com/tockins/realize-examples/coin/"
    

Color reference

  • Blue: outputs of the project
  • Red: errors
  • Magenta: times or changed files
  • Green: successfully completed action

Config file example

  • For more examples check Realize Examples

    settings:
      resources:
        output: outputs.log  // name of the output file
        log: logs.log        // name of the log file (errors included)
      server:
        enable: true         // enables the web server 
        open: false          // opens the web server in a new tab
        host: localhost      // web server host
        port: 5000           // wev server port
     config:                   
       flimit: 0             // increases the maximum number of open files - supported only on linux or os x, sudo required
    projects:
    - name: printer          // project name
      path: /                // project path
      run: true              // enables go run  (require bin)
      bin: true              // enables go install
      generate: false        // enables go generate
      build: false           // enables go build
      fmt: true              // enables go fmt
      test: false            // enables go test   
      params: []             // array of additionals params. the project will be launched with these parameters   
      watcher:
        before: []           // custom commands launched before the execution of the project 
        after: []            // custom commands launched after the execution of the project 
        paths:               // paths to observe for live reload
        - /
        ignore_paths:        // paths to ignore
        - vendor
        exts:                // file extensions to observe for live reload
        - .go
        preview: true        // prints the observed files on startup
      cli:                   
        streams: true        // prints the output streams of the project in the cli 
      file:
        streams: false       // saves the output stream of the project in a file
        logs: false          // saves the logs of the project in a file
        errors: false        // saves the errors of the project in a file
    

Next release

v1.3
  • Web panel edit settings, full support
  • Tests

Contacts

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%