diff --git a/appvm.go b/appvm.go index 48b1f54..5a3f11b 100644 --- a/appvm.go +++ b/appvm.go @@ -17,6 +17,7 @@ import ( "os" "os/exec" "path/filepath" + "regexp" "strconv" "strings" "syscall" @@ -206,12 +207,19 @@ func generateVM(name string, verbose bool) (realpath, reginfo, qcow2 string, err return } - // TODO: Use go regex - reginfo, _, _, err = system.System("sh", "-c", "cat result/bin/run-nixos-vm | grep -o 'regInfo=.*/registration'") + bytes, err := ioutil.ReadFile("result/bin/run-nixos-vm") if err != nil { return } + match := regexp.MustCompile("regInfo=.*/registration").FindSubmatch(bytes) + if len(match) != 1 { + err = errors.New("should be one reginfo") + return + } + + reginfo = string(match[0]) + syscall.Unlink("result") qcow2 = os.Getenv("HOME") + "/appvm/.fake.qcow2"