// This window, when it's hidden, still exists to the application // so it can be treated as if it really exists package main import ( "os" "go.wit.com/gui" "go.wit.com/lib/gadgets" "go.wit.com/lib/gui/shell" "go.wit.com/log" ) var apple *gui.Node // This initializes the first window, a group and a button func makebasicWindow() *gadgets.BasicWindow { log.Warn("init basicWindow state") basicWindow = gadgets.NewBasicWindow(myGui, "Create .deb files for GO applications") basicWindow.Make() basicWindow.Custom = func() { log.Info("got to close") os.Exit(0) } box1 := basicWindow.Box() control := newControl(box1) vbox := box1.Box().Horizontal() group1 := vbox.NewGroup("controls").Horizontal() // Vertical() group1.NewButton("go build", func() { shell.Run([]string{"go", "build", "-v", "-x"}) }) group1.NewButton("read control file", func() { control.readControlFile() }) group1.NewButton("Make .deb", func() { basicWindow.Disable() if control.buildPackage() { log.Info("build worked") } else { log.Warn("build failed") } basicWindow.Enable() }) group1.NewButton("open repo", func() { }) /* group1.NewButton("show apple", func() { apple.Show() }) apple = group1.NewButton("apple", func() { log.Info("is not a pear") }) */ return basicWindow } func (c *controlFile) buildPackage() bool { if c.readControlFile() == nil { log.Warn("scan worked") } else { log.Warn("scan failed") return false } if shell.Run([]string{"go", "build", "-v", "-x"}) { log.Warn("build worked") } else { log.Warn("build failed") return false } filename := c.Package.String() if filename == "" { log.Warn("build failed") return false } if !shell.Exists(filename) { log.Warn("build failed") return false } arch := c.Architecture.String() version := "v0.0.0" debname := filename + "_" + version + "_" + arch + ".deb" shell.Run([]string{"strip", filename}) shell.Run([]string{"dpkg-deb", "--build", "files", debname}) if shell.Exists(debname) { log.Warn("build worked") } else { log.Warn("build failed") return false } return true }