summaryrefslogtreecommitdiff
path: root/doRelease.go
diff options
context:
space:
mode:
Diffstat (limited to 'doRelease.go')
-rw-r--r--doRelease.go171
1 files changed, 0 insertions, 171 deletions
diff --git a/doRelease.go b/doRelease.go
deleted file mode 100644
index f99e9e4..0000000
--- a/doRelease.go
+++ /dev/null
@@ -1,171 +0,0 @@
-package main
-
-import (
- "bytes"
- "crypto/sha256"
- "errors"
- "fmt"
- "os"
- "os/exec"
- "path/filepath"
- "strings"
- "time"
-
- "go.wit.com/lib/config"
- "go.wit.com/lib/debian"
- "go.wit.com/lib/gui/shell"
- "go.wit.com/log"
-)
-
-func doRelease() (string, error) {
- // all paths should be relative to this BaseDir path
- if err := os.Chdir(config.GetPanic("BaseDir")); err != nil {
- log.Info("could not change to dir", config.GetPanic("BaseDir"), err)
- panic("could not change to dir")
- }
- shell.RunVerbose([]string{"rm", "-rf", "dists"})
-
- if err := os.MkdirAll("dists/sid/main/binary-amd64", 0755); err != nil {
- log.Info("did not work", err)
- } else {
- log.Info("did work")
- }
-
- if err := os.Chdir(me.pb.BaseDir); err != nil {
- me.sh.BadExit("no '"+me.pb.BaseDir+"' directory", err)
- }
-
- if !shell.IsDir("pool/") {
- me.sh.BadExit("no "+filepath.Join(me.pb.BaseDir, "pool")+" directory", errors.New("mount -a ? missing wit/pool/"))
- }
-
- log.Info("Processing dir", filepath.Join(me.pb.BaseDir, "pool"))
-
- // arch := "amd64"
-
- newest := doGetNewest("amd64")
- newest.SortPackage()
- thefile := debian.MakePackagesFile(newest)
- fullname := "dists/sid/main/binary-amd64/Packages"
- if err := os.WriteFile(fullname, []byte(thefile), os.ModePerm); err != nil {
- return fullname, err
- }
-
- r, err := shell.RunVerbose([]string{"gzip", "-k", fullname})
- log.Info(r, err)
- // r, err := shell.RunVerbose([]string{"gzip", fullname})
- // panic("blah")
- // shell.RunVerbose([]string{"bzip2", "-k", fullname})
- // shell.RunVerbose([]string{"bzip2", fullname})
-
- allfiles, _ := FindFiles("dists/sid/main")
- for i, filename := range allfiles {
- log.Info(i, filename)
- }
-
- releasePath := filepath.Join("dists/sid", "Release")
-
- rfile, _ := os.OpenFile(releasePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
- fmt.Fprintf(rfile, "Origin: WIT.COM Debian Sid\n")
- fmt.Fprintf(rfile, "Label: WIT.COM Debian Sid\n")
- fmt.Fprintf(rfile, "Suite: sid\n")
- fmt.Fprintf(rfile, "Codename: sid\n")
- fmt.Fprintf(rfile, "Date: %s\n", time.Now().UTC().Format(time.RFC1123Z))
- fmt.Fprintf(rfile, "Architectures: riscv64 amd64 arm64 all\n")
- fmt.Fprintf(rfile, "Components: main\n")
- fmt.Fprintf(rfile, "Description: Tooling for RiscV, Semiconductor Designs & Private Clouds\n")
-
- /*
- fmt.Fprintf(rfile, "MD5SUM:\n")
- for i, filename := range allfiles {
- log.Info(i, filename)
- fileBytes, _ := os.ReadFile(filename)
- sum := fmt.Sprintf("%x", md5.Sum(fileBytes)) // deprecated
- newfile := strings.TrimPrefix(filename, "dists/sid/")
- fmt.Fprintf(rfile, " %s %d %s\n", sum, len(fileBytes), newfile)
- }
- fmt.Fprintf(rfile, "SHA1:\n")
- for i, filename := range allfiles {
- log.Info(i, filename)
- fileBytes, _ := os.ReadFile(filename)
- sum := fmt.Sprintf("%x", sha1.Sum(fileBytes))
- newfile := strings.TrimPrefix(filename, "dists/sid/")
- fmt.Fprintf(rfile, " %s %d %s\n", sum, len(fileBytes), newfile)
- }
- */
- fmt.Fprintf(rfile, "SHA256:\n")
- for i, filename := range allfiles {
- log.Info(i, filename)
- fileBytes, _ := os.ReadFile(filename)
- sum := fmt.Sprintf("%x", sha256.Sum256(fileBytes))
- newfile := strings.TrimPrefix(filename, "dists/sid/")
- fmt.Fprintf(rfile, " %s %d %s\n", sum, len(fileBytes), newfile)
- }
- // fmt.Fprintf(rfile, "SHA1:\n")
- // fmt.Fprintf(rfile, "SHA256:\n")
- rfile.Close()
-
- gpgKeyID := config.GetPanic("gpgKeyID")
- // Sign the file
- log.Println("Signing with GPG key:", gpgKeyID)
-
- distPath := config.GetPanic("distPath")
- // Create InRelease
- cmdClearSign := exec.Command("gpg", "--default-key", gpgKeyID, "--clearsign", "-o", filepath.Join(distPath, "InRelease"), releasePath)
- if err := runCommand(cmdClearSign); err != nil {
- log.Printf("failed to create InRelease: %v\n", err)
- }
-
- // Create Release.gpg
- cmdDetachedSign := exec.Command("gpg", "--default-key", gpgKeyID, "-abs", "-o", filepath.Join(distPath, "Release.gpg"), releasePath)
- if err := runCommand(cmdDetachedSign); err != nil {
- log.Printf("failed to create Release.gpg: %v\n", err)
- }
- /*
- var sum string
- switch name {
- case "MD5Sum":
- sum = fmt.Sprintf("%x", md5.Sum(fileBytes))
- case "SHA1":
- sum = fmt.Sprintf("%x", sha1.Sum(fileBytes))
- case "SHA256":
- // FIX 3: Use the correct sha256.Sum256 function.
- sum = fmt.Sprintf("%x", sha256.Sum256(fileBytes))
- */
-
- log.Info("Package file:", fullname)
- log.Info("Release file:", releasePath)
- log.Info("InRelease file:", filepath.Join(distPath, "InRelease"))
- cmd := []string{"apt-get", "update"}
- cmd = append(cmd, "-o", "Dir::Etc::sourcelist=/etc/apt/sources.list.d/wit.list")
- cmd = append(cmd, "-o", "Dir::Etc::sourceparts=/dev/null")
- cmd = append(cmd, "-o", "APT::Get::List-Cleanup=0")
- log.Info("apt update :", cmd)
- log.Info("")
- log.Info("Finished Everything")
- log.Info("")
-
- if config.Verbose() {
- log.Info("")
- shell.RunVerbose(cmd)
- log.Info("")
- log.Info("")
- log.Info("Local file:", "/var/lib/apt/lists/mirrors.wit.com_wit_dists_sid_main_binary-amd64_Packages")
- log.Info("")
- shell.RunVerbose([]string{"head", "-n", "15", "/var/lib/apt/lists/mirrors.wit.com_wit_dists_sid_main_binary-amd64_Packages"})
- log.Info("apt install :", "apt install wit-tools")
- log.Info("")
- }
-
- return "did everything", nil
-}
-
-func runCommand(cmd *exec.Cmd) error {
- var stderr bytes.Buffer
- cmd.Stderr = &stderr
- err := cmd.Run()
- if err != nil {
- return fmt.Errorf("command '%s' failed: %v\nStderr: %s", cmd.String(), err, stderr.String())
- }
- return nil
-}