package reload
import "github.com/teamwork/reload"
Package reload offers lightweight automatic reloading of running processes.
After initialisation with reload.Do() any changes to the binary will restart the process.
Example:
go func() { err := reload.Do(log.Printf) if err != nil { panic(err) } }()
A list of additional directories to watch can be added:
go func() { err := reload.Do(log.Printf, reload.Dir("tpl", reloadTpl) if err != nil { panic(err) } }()
Note that this package won't prevent race conditions (e.g. when assigning to a global templates variable). You'll need to use sync.RWMutex yourself.
Index ¶
- func Dir(path string, cb func()) dir
- func Do(log func(string, ...interface{}), additional ...dir) error
- func Exec()
Functions ¶
func Dir ¶
func Dir(path string, cb func()) dir
Dir is an additional directory to watch for changes. Directories are watched non-recursively.
The second argument is the callback that to run when the directory changes. Use reload.Exec() to restart the process.
func Do ¶
Do reload the current process when its binary changes.
The log function is used to display an informational startup message and errors. It works well with e.g. the standard log package or Logrus.
The error return will only return initialisation errors. Once initialized it will use the log function to print errors, rather than return.
func Exec ¶
func Exec()
Exec replaces the current process with a new copy of itself.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
example |
- Version
- v1.4.2 (latest)
- Published
- Oct 14, 2022
- Platform
- js/wasm
- Imports
- 8 packages
- Last checked
- now –
Tools for package owners.