Skip to content

todashuta/goemon

 
 

Repository files navigation

goemon

Go Extensible Monitoring

Speed up your development. If you updated js files, the page should be reloaded. If you updated go files, the app should be recompiled, and should be restarted. And also, the page should be reloaded

Expected directory structure

+---assets
|   +- index.html
|   +- app.css
|   +- app.js
+- main.go

Usage

For example:

Run web server

$ goemon -g > goemon.yml
$ goemon go run main.go

Writing markdown

$ goemon -g md > goemon.yml
$ goemon --

Writing C code

$ goemon -g c > goemon.yml
$ goemon --

Default configuration

# Generated by goemon -g
livereload: :35730
tasks:
- match: './assets/*.js'
  commands:
  - minifyjs -m -i ${GOEMON_TARGET_FILE} > ${GOEMON_TARGET_DIR}/${GOEMON_TARGET_NAME}.min.js
  - :livereload /
- match: './assets/*.css'
  commands:
  - :livereload /
- match: './assets/*.html'
  commands:
  - :livereload /
- match: '*.go'
  commands:
  - go build
  - :restart
  - :livereload /
  • match is wildcard. You can use ./foo/bar/**/*.js like a shell.
  • commands is list of commands to run. :XXX is internal command.
Internal Command Behavior
:livereload /path reload path
:minify minify js/css(work in progress)
:restart restart app
:sleep 3000 sleep 3000ms
:fizzbuzz 100 do fizzbuzz(1 to 100)

Currently, :minify is work in progress. So you should run minifyjs command to do it. For example, configuration in above works as below.

Pattern Behavior
./assets/*.css reload page
./assets/*.js minify js/css, reload page
./assets/*.html reload page
./assets/*.go build, restart app, reload page

LiveReload

You can use livereload feature.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <script src="http://localhost:35730/livereload.js"></script>
  <script src="/app.css"></script>
  <script src="/app.min.js"></script>
  <title>Your App</title>
</head>
<body>
<!-- Your Code -->  
</body>
</html>

Use goemon as library

cat > goemon.go
package main

import (
	_ "github.com/mattn/goemon/auto"
)
^D

Then go build. You don't need to use goemon command.

Installation

$ go get github.com/mattn/goemon/cmd/goemon

If you want to minify js, install minifyjs like below.

$ npm install -g minifyjs

License

MIT

Author

Yasuhiro Matsumoto (a.k.a mattn)

About

五右衛門

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%