adding the sources

This commit is contained in:
Vincent Batts 2013-07-05 10:46:45 -04:00
parent 1caa7b987f
commit c7eb842ec7
3 changed files with 138 additions and 0 deletions

73
config/config.go Normal file
View 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
}