38 lines
656 B
Go
38 lines
656 B
Go
|
package internal
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"os"
|
||
|
"os/exec"
|
||
|
|
||
|
"github.com/fsnotify/fsnotify"
|
||
|
)
|
||
|
|
||
|
type NotifyIface interface {
|
||
|
NewWatcher() (*fsnotify.Watcher, error)
|
||
|
}
|
||
|
|
||
|
type ExecFunc func(executableFilePath string, args ...string) error
|
||
|
|
||
|
func Execute(executableFilePath string, args ...string) error {
|
||
|
cmd := exec.Command(executableFilePath, args...)
|
||
|
cmd.Stdout = os.Stdout
|
||
|
cmd.Stderr = os.Stderr
|
||
|
|
||
|
if err := cmd.Run(); err != nil {
|
||
|
return fmt.Errorf("cmd.Run %s", err)
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
type Notifier struct{}
|
||
|
|
||
|
func (n *Notifier) NewWatcher() (*fsnotify.Watcher, error) {
|
||
|
return fsnotify.NewWatcher()
|
||
|
}
|
||
|
|
||
|
func NewNotifier() *Notifier {
|
||
|
return &Notifier{}
|
||
|
}
|