diff --git a/appvm.go b/appvm.go index de16807..915a310 100644 --- a/appvm.go +++ b/appvm.go @@ -106,10 +106,10 @@ func streamStdOutErr(command *cmd.Cmd) { } } -func generateVM(name string, verbose bool) (realpath, reginfo, qcow2 string, err error) { +func generateVM(path, name string, verbose bool) (realpath, reginfo, qcow2 string, err error) { command := cmd.NewCmdOptions(cmd.Options{Buffered: false, Streaming: true}, "nix-build", "", "-A", "config.system.build.vm", - "-I", "nixos-config=nix/"+name+".nix", "-I", ".") + "-I", "nixos-config="+path+"/nix/"+name+".nix", "-I", path) if verbose { go streamStdOutErr(command) @@ -170,12 +170,7 @@ func generateAppVM(l *libvirt.Libvirt, nixName, vmName, appvmPath, sharedDir string, verbose, online bool) (err error) { - err = os.Chdir(appvmPath) - if err != nil { - return - } - - realpath, reginfo, qcow2, err := generateVM(nixName, verbose) + realpath, reginfo, qcow2, err := generateVM(appvmPath, nixName, verbose) if err != nil { return } diff --git a/generate.go b/generate.go index be8f019..2009f6e 100644 --- a/generate.go +++ b/generate.go @@ -190,15 +190,10 @@ func generate(pkg, bin, vmname string, build bool) (err error) { log.Println("Configuration file is saved to", appFilename) if build { - err = os.Chdir(configDir) - if err != nil { - return - } - if vmname != "" { - _, _, _, err = generateVM(vmname, true) + _, _, _, err = generateVM(configDir, vmname, true) } else { - _, _, _, err = generateVM(name, true) + _, _, _, err = generateVM(configDir, name, true) } if err != nil {