package main import ( "os" "go.wit.com/gui" "go.wit.com/lib/gadgets" "go.wit.com/lib/gui/shell" "go.wit.com/log" ) // This initializes the first window, a group and a button // this is terribly old code. redo this all after widgets are switched to protobuf func makebasicWindow() *gadgets.BasicWindow { log.Warn("init basicWindow state") win := gadgets.RawBasicWindow("Create .deb files for GO applications") win.Make() win.Custom = func() { log.Info("got to close") os.Exit(0) } box1 := win.Box() // me.cBox = newControl(box1) 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() { readControlFile(me.repo) }) group1.NewButton("write control file", func() { writeDebianControlFile(me.repo) }) group1.NewButton("Make .deb", func() { win.Disable() if ok, err := buildPackage(me.repo); ok { log.Info("build worked") os.Exit(0) } else { log.Warn("build failed", err) } win.Enable() }) return win } // This initializes the control box func newControl(parent *gui.Node) *controlBox { var c *controlBox c = new(controlBox) c.group = parent.NewGroup("choices") c.grid = c.group.NewGrid("gridiron", 8, 1) c.Package = gadgets.NewOneLiner(c.grid, "Package") c.grid.NextRow() c.Source = gadgets.NewOneLiner(c.grid, "Source") c.grid.NextRow() c.Version = gadgets.NewOneLiner(c.grid, "Version") c.grid.NextRow() c.Architecture = gadgets.NewBasicDropdown(c.grid, "Architecture") c.Architecture.AddText("all") c.Architecture.AddText("riscv64") c.Architecture.AddText("amd64") c.Architecture.AddText("arm64") c.Architecture.AddText("ppc64") c.Architecture.AddText("i386") c.Architecture.AddText("sparc64") c.Architecture.AddText("alpha") c.Architecture.SetText("riscv64") c.grid.NextRow() c.InstallPath = gadgets.NewBasicCombobox(c.grid, "Install Path") c.InstallPath.AddText("/usr/bin") c.InstallPath.AddText("/usr/local/bin") c.InstallPath.AddText("/bin") c.InstallPath.AddText("/opt//bin") c.InstallPath.SetText("/usr/bin") c.grid.NextRow() c.Maintainer = gadgets.NewOneLiner(c.grid, "Maintainer") c.grid.NextRow() c.Packager = gadgets.NewBasicEntry(c.grid, "Packager") c.grid.NextRow() c.GoPath = gadgets.NewBasicEntry(c.grid, "GoPath") c.grid.NextRow() c.URL = gadgets.NewBasicEntry(c.grid, "URL") c.grid.NextRow() c.Depends = gadgets.NewOneLiner(c.grid, "Depends") c.grid.NextRow() c.BuildDepends = gadgets.NewOneLiner(c.grid, "Build-Depends") c.grid.NextRow() c.Recommends = gadgets.NewOneLiner(c.grid, "Recommends") c.grid.NextRow() c.Conflicts = gadgets.NewBasicEntry(c.grid, "Conflicts") c.grid.NextRow() c.Description = gadgets.NewOneLiner(c.grid, "Description") c.grid.NextRow() return c } func updateControl(c *controlBox) { c.URL.SetText(me.repo.URL) }