adding the sources
This commit is contained in:
parent
1caa7b987f
commit
c7eb842ec7
3 changed files with 138 additions and 0 deletions
73
config/config.go
Normal file
73
config/config.go
Normal file
|
@ -0,0 +1,73 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"launchpad.net/goyaml"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
SuspendCmd, LockCmd string
|
||||
}
|
||||
|
||||
func (c *Config) Suspend() (err error) {
|
||||
args := strings.Split(c.SuspendCmd, " ")
|
||||
cmd := exec.Command(args[0], args[1:]...)
|
||||
stdout, err := cmd.StdoutPipe()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
stderr, err := cmd.StderrPipe()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
go io.Copy(os.Stdout, stdout)
|
||||
go io.Copy(os.Stderr, stderr)
|
||||
|
||||
err = cmd.Run()
|
||||
return
|
||||
}
|
||||
|
||||
func (c *Config) Lock() (err error) {
|
||||
args := strings.Split(c.LockCmd, " ")
|
||||
cmd := exec.Command(args[0], args[1:]...)
|
||||
stdout, err := cmd.StdoutPipe()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
stderr, err := cmd.StderrPipe()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
go io.Copy(os.Stdout, stdout)
|
||||
go io.Copy(os.Stderr, stderr)
|
||||
|
||||
err = cmd.Run()
|
||||
return
|
||||
}
|
||||
|
||||
func ReadConfig(filename string) (c *Config, err error) {
|
||||
file, err := os.Open(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
b, err := ioutil.ReadAll(file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
c = &Config{}
|
||||
err = goyaml.Unmarshal(b, c)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return c, nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue