Skip to content

Go build system with file watcher, 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

hokkaidobeard/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

Realize is the Go tool that is focused to speed up and improve developers workflow.

Automate your work pipeline, integrate additional tools of third party, define custom cli commands and reload projects at each changed without stop to write code.

Features

  • Highly customizable
  • Setup step by step
  • Live reload
  • Support for multiple projects
  • Save logs on files
  • Web panel for a smart view
  • Build, install, run, test, fmt, generate, vet and much more
  • Watch custom paths and specific file extensions
  • Multiple watching methods (Polling, File watcher)
  • Docker support

v 1.5

  • Watch gopath dependencies
  • Web panel, download logs
  • Multiple configurations (dev, production)
  • Support to ignore paths and files in gititnore
  • Input redirection (wait for an input and redirect)

Wiki

Installation

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, add 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
    --open                      -> Open in default browser
    

    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
      environment:            // env variables
        test: test
        myvar: value
      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

About

Go build system with file watcher, 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%