// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "os" "go.wit.com/gui" "go.wit.com/lib/gadgets" "go.wit.com/lib/gui/shell" "go.wit.com/log" ) // An app to submit patches for the 30 GO GUI repos func doGui() { log.Warn("init basicWindow state") win := gadgets.NewGenericWindow("Create .deb files for GO applications", "things") win.Custom = func() { log.Info("got to close") os.Exit(0) } var cbox *controlBox vbox := win.Middle.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("dump repo.Control", func() { // log.Info("CONTROL:", me.repo.Control) for v := range me.repo.Control { log.Infof("CONTROL: %s: %s\n", v, me.repo.Control[v]) } }) 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 with err:", err) } win.Enable() }) grid := win.Middle.RawGrid() cbox = newControl(grid) updateControl(cbox) } // This initializes the control box func newControl(grid *gui.Node) *controlBox { c := new(controlBox) c.grid = grid 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.Namespace = gadgets.NewBasicEntry(c.grid, "Namespace") 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.Description.SetText("na") c.grid.NextRow() return c }