summaryrefslogtreecommitdiff
path: root/stateWindow.go
diff options
context:
space:
mode:
Diffstat (limited to 'stateWindow.go')
-rw-r--r--stateWindow.go206
1 files changed, 0 insertions, 206 deletions
diff --git a/stateWindow.go b/stateWindow.go
index 0e0c61b..0831d43 100644
--- a/stateWindow.go
+++ b/stateWindow.go
@@ -3,12 +3,7 @@
package main
import (
- "fmt"
"os"
- "path/filepath"
- "strconv"
- "strings"
- "time"
"go.wit.com/lib/gadgets"
"go.wit.com/lib/gui/shell"
@@ -56,204 +51,3 @@ func makebasicWindow() *gadgets.BasicWindow {
return basicWindow
}
-
-func (c *controlBox) buildPackage() bool {
- // TODO: if dirty, set GO111MODULE
- // also, if last tag != version
- if args.Release {
- os.Unsetenv("GO111MODULE")
- path := c.pathL.String() + "@latest"
- cmd := []string{"go", "install", "-v", "-x", path}
- if shell.Run(cmd) {
- log.Warn("build worked")
- } else {
- log.Warn("build failed")
- return false
- }
- } else {
-
- os.Setenv("GO111MODULE", "off")
- 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 := c.Version.String()
- if version == "" {
- version = "0.0.0"
- }
-
- debname := filename + "_" + version + "_" + arch + ".deb"
-
- if shell.Exists("files") {
- if !shell.Run([]string{"rm", "-rf", "files"}) {
- log.Warn("rm failed")
- return false
- }
- }
- if shell.Exists("files") {
- log.Warn("rm failed")
- return false
- }
- if !shell.Mkdir("files/DEBIAN") {
- log.Warn("mkdir failed")
- return false
- }
- if !shell.Mkdir("files/usr/bin") {
- log.Warn("mkdir failed")
- return false
- }
- if !shell.Run([]string{"cp", filename, "files/usr/bin"}) {
- log.Warn("cp failed")
- return false
- }
- if !shell.Run([]string{"strip", "files/usr/bin/" + filename}) {
- log.Warn("strip failed")
- return false
- }
-
- // put the README in there (if missing, generate it?)
- var readme string = ""
- if shell.Exists("README.md") {
- readme = "README.md"
- }
-
- if shell.Exists("README") {
- readme = "README"
- }
-
- if readme != "" {
- path := filepath.Join("files/usr/lib/" + filename)
- if !shell.Mkdir(path) {
- log.Warn("mkdir failed")
- return false
- }
- if !shell.Run([]string{"cp", readme, path}) {
- log.Warn("cp failed")
- return false
- }
- }
-
- if !c.writeFiles() {
- log.Warn("write control file failed")
- return false
- }
-
- homeDir, err := os.UserHomeDir()
- if err != nil {
- log.Warn("os.UserHomeDir() failed")
- return false
- }
-
- // experiment for the toolkit package
- if c.status.Exists("build") {
- if args.Release {
- os.Unsetenv("GO111MODULE")
- } else {
- os.Setenv("GO111MODULE", "off")
- }
- shell.Run([]string{"./build"})
- }
-
- fulldebname := filepath.Join(homeDir, "incoming", debname)
-
- shell.Run([]string{"dpkg-deb", "--build", "files", fulldebname})
- if shell.Exists(fulldebname) {
- log.Warn("build worked")
- } else {
- log.Warn("build failed")
- return false
- }
- shell.Run([]string{"dpkg-deb", "-I", fulldebname})
- shell.Run([]string{"dpkg-deb", "-c", fulldebname})
- return true
-}
-
-func (c *controlBox) writeFiles() bool {
- cf, err := os.OpenFile("files/DEBIAN/control", os.O_RDWR|os.O_CREATE, 0644)
- if err != nil {
- log.Info("open control file failed", err)
- return false
- }
- fmt.Fprintln(cf, "Package:", c.Package.String())
- fmt.Fprintln(cf, "Source:", c.Source.String())
- fmt.Fprintln(cf, "Version:", c.Version.String())
- fmt.Fprintln(cf, "Architecture:", c.Architecture.String())
- fmt.Fprintln(cf, "Depends:", c.Depends.String())
- fmt.Fprintln(cf, "Build-Depends:", c.BuildDepends.String())
- stamp := time.Now().UTC().Format("2006/01/02 15:04:05 UTC")
- // update to now now despite what the GUI is showing
- fmt.Fprintln(cf, "Package-Build-Date:", stamp)
- fmt.Fprintln(cf, "Git-Tag-Date:", c.tagDate.String())
-
- fmt.Fprintln(cf, "Maintainer:", c.Maintainer.String())
- desc := c.Description.String()
- parts := strings.Split(desc, "\n")
- fmt.Fprintln(cf, "Description:", strings.Join(parts, "\n "))
-
- return true
-}
-
-// try to guess or figure out the config file values
-// if there is not a control file
-func (c *controlBox) computeControlValues() bool {
- if c.Package.String() == "" {
- // get the package name from the repo name
- path := c.pathL.String()
- parts := strings.Split(path, "/")
- name := parts[len(parts)-1]
- c.Package.SetText(name)
- }
- if c.Source.String() == "" {
- c.Source.SetText(c.Package.String())
- }
- if c.BuildDepends.String() == "" {
- c.BuildDepends.SetText("golang")
- }
- if c.Recommends.String() == "" {
- c.Recommends.SetText("go-gui-toolkits")
- }
- // TODO: get this from the git log
- if c.Maintainer.String() == "" {
- c.Maintainer.SetText("Jeff Carr <[email protected]>")
- }
- // TODO: get this from gitea (or gitlab or github, etc)
- // or from the README.md ?
- if c.Description.String() == "" {
- path := c.pathL.String()
- c.Description.SetText("GO binary of " + path)
- }
- return true
-}
-
-// stamp := time.Now().UTC().Format("2006/01/02 15:04:05 UTC")
-
-func (c *controlBox) getDateStamp(tag string) string {
- _, out := c.status.RunCmd([]string{"git", "log", "-1", "--format=%at", tag})
- out = strings.TrimSpace(out)
-
- // Convert the string to an integer
- gitTagTimestampInt, err := strconv.ParseInt(out, 10, 64)
- if err != nil {
- fmt.Println("Error converting timestamp:", err)
- return "git tag " + tag + " unknown"
- }
-
- // Parse the Unix timestamp into a time.Time object
- gitTagDate := time.Unix(gitTagTimestampInt, 0)
- return gitTagDate.UTC().Format("2006/01/02 15:04:05 UTC")
-}