diff --git a/appvm.go b/appvm.go index 3b9c54f..eb3b5e6 100644 --- a/appvm.go +++ b/appvm.go @@ -403,12 +403,13 @@ func main() { generateCommand := kingpin.Command("generate", "Generate appvm definition") generateName := generateCommand.Arg("name", "Nix package name").Required().String() generateBin := generateCommand.Arg("bin", "Binary").Default("").String() + generateVMName := generateCommand.Flag("vm", "Use VM Name").Default("").String() switch kingpin.Parse() { case "list": list(l) case "generate": - generate(l, *generateName, *generateBin) + generate(l, *generateName, *generateBin, *generateVMName) case "start": start(l, *startName, *startVerbose) case "stop": diff --git a/generate.go b/generate.go index bd22735..4ffeb83 100644 --- a/generate.go +++ b/generate.go @@ -42,7 +42,7 @@ func nixPath(name string) (path string, err error) { return } -func generate(l *libvirt.Libvirt, name, bin string) { +func generate(l *libvirt.Libvirt, name, bin, vmname string) { if !isPackageExists(name) { log.Println("Package pkgs."+name, "does not exists") return @@ -88,7 +88,13 @@ func generate(l *libvirt.Libvirt, name, bin string) { } realName := strings.Split(name, ".")[1] - appFilename := configDir + "/nix/" + realName + ".nix" + + var appFilename string + if vmname != "" { + appFilename = configDir + "/nix/" + vmname + ".nix" + } else { + appFilename = configDir + "/nix/" + realName + ".nix" + } appNixConfig := fmt.Sprintf(template, realName, bin)