Implements passing file/arguments to application
This commit is contained in:
parent
dbfc2929db
commit
0c35a66606
26
appvm.go
26
appvm.go
@ -208,8 +208,28 @@ func isAppvmConfigurationExists(appvmPath, name string) bool {
|
|||||||
return fileExists(appvmPath + "/nix/" + name + ".nix")
|
return fileExists(appvmPath + "/nix/" + name + ".nix")
|
||||||
}
|
}
|
||||||
|
|
||||||
func start(l *libvirt.Libvirt, name string, verbose bool) {
|
func start(l *libvirt.Libvirt, name string, verbose bool, args, open string) {
|
||||||
appvmPath := configDir
|
appvmPath := configDir
|
||||||
|
vmHomePath := os.Getenv("HOME") + "/appvm/" + name + "/"
|
||||||
|
|
||||||
|
if open != "" {
|
||||||
|
filename := vmHomePath + filepath.Base(open)
|
||||||
|
err := copyFile(open, filename)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Can't copy file")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
args += "/home/user/" + filepath.Base(open)
|
||||||
|
}
|
||||||
|
|
||||||
|
if args != "" {
|
||||||
|
err := ioutil.WriteFile(vmHomePath+".args", []byte(args), 0700)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Can't write args")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if !isAppvmConfigurationExists(appvmPath, name) {
|
if !isAppvmConfigurationExists(appvmPath, name) {
|
||||||
log.Println("No configuration exists for app, " +
|
log.Println("No configuration exists for app, " +
|
||||||
@ -377,6 +397,8 @@ func main() {
|
|||||||
startCommand := kingpin.Command("start", "Start application")
|
startCommand := kingpin.Command("start", "Start application")
|
||||||
startName := startCommand.Arg("name", "Application name").Required().String()
|
startName := startCommand.Arg("name", "Application name").Required().String()
|
||||||
startQuiet := startCommand.Flag("quiet", "Less verbosity").Bool()
|
startQuiet := startCommand.Flag("quiet", "Less verbosity").Bool()
|
||||||
|
startArgs := startCommand.Flag("args", "Command line arguments").String()
|
||||||
|
startOpen := startCommand.Flag("open", "Pass file to application").String()
|
||||||
|
|
||||||
stopName := kingpin.Command("stop", "Stop application").Arg("name", "Application name").Required().String()
|
stopName := kingpin.Command("stop", "Stop application").Arg("name", "Application name").Required().String()
|
||||||
dropName := kingpin.Command("drop", "Remove application data").Arg("name", "Application name").Required().String()
|
dropName := kingpin.Command("drop", "Remove application data").Arg("name", "Application name").Required().String()
|
||||||
@ -399,7 +421,7 @@ func main() {
|
|||||||
case "generate":
|
case "generate":
|
||||||
generate(l, *generateName, *generateBin, *generateVMName)
|
generate(l, *generateName, *generateBin, *generateVMName)
|
||||||
case "start":
|
case "start":
|
||||||
start(l, *startName, !*startQuiet)
|
start(l, *startName, !*startQuiet, *startArgs, *startOpen)
|
||||||
case "stop":
|
case "stop":
|
||||||
stop(l, *stopName)
|
stop(l, *stopName)
|
||||||
case "drop":
|
case "drop":
|
||||||
|
Loading…
Reference in New Issue
Block a user