summaryrefslogtreecommitdiff
path: root/doIncomingOld.go
diff options
context:
space:
mode:
Diffstat (limited to 'doIncomingOld.go')
-rw-r--r--doIncomingOld.go68
1 files changed, 68 insertions, 0 deletions
diff --git a/doIncomingOld.go b/doIncomingOld.go
new file mode 100644
index 0000000..35873f0
--- /dev/null
+++ b/doIncomingOld.go
@@ -0,0 +1,68 @@
+package main
+
+import (
+ "crypto/md5"
+ "errors"
+ "os"
+ "path/filepath"
+ "strings"
+
+ "go.wit.com/lib/config"
+ "go.wit.com/lib/gui/shell"
+ "go.wit.com/log"
+)
+
+func moveOutOfIncomingOld(fullname string) error {
+ if strings.HasPrefix(fullname, "pool/main/incoming") {
+ log.Info("file is in incoming", fullname)
+ } else {
+ log.Info("file isn't in incoming", fullname)
+ return nil
+ }
+
+ _, filename := filepath.Split(fullname)
+ parts := strings.Split(filename, "_")
+ if len(parts) != 3 {
+ // todo: add more filename checking here (check for ".deb")
+ return errors.New(log.Sprintf("bad filenae %s", filename))
+ }
+ packageName := parts[0]
+ letteredDir := log.Sprintf("%1.1s", filename)
+ newfilename := filepath.Join("pool/main", letteredDir, packageName, filename)
+ if newfilename == fullname {
+ // the filename is correct
+ return errors.New(log.Sprintf("should be impossible %s", filename))
+ }
+ destDir := filepath.Dir(newfilename)
+ if err := os.MkdirAll(destDir, 0755); err != nil {
+ log.Printf("%s move incoming oldname %s newname: %s\n", packageName, fullname, newfilename)
+ log.Fatal("Failed to create destination directory: %v", err)
+ }
+ if config.Exists(newfilename) {
+ olddata, _ := os.ReadFile(fullname)
+ newdata, _ := os.ReadFile(newfilename)
+ oldmd5 := md5.Sum(olddata)
+ newmd5 := md5.Sum(newdata)
+ if oldmd5 == newmd5 {
+ log.Info("OLD FILE", fullname)
+ log.Info("NEW FILE", newfilename)
+ log.Printf("files are the same %x %x\n", md5.Sum(olddata), md5.Sum(newdata))
+ } else {
+ shell.RunVerbose([]string{"dpkg", "-I", fullname})
+ shell.RunVerbose([]string{"dpkg", "-I", newfilename})
+ log.Printf("different checksums: %s %s\n", fullname, newfilename)
+ log.Printf("md5sum old %x vs new %x\n", md5.Sum(olddata), md5.Sum(newdata))
+ }
+ if argv.Force {
+ moveFileToBroken(newfilename)
+ // os.Rename(path, newfilename)
+ // log.Printf("%s moved incoming oldname %s newname: %s\n", packageName, path, newfilename)
+ }
+ // return "file already exists. use --force to replace", errors.New("duplicate .deb in incoming/")
+ me.argv.GoodExit("file already exists. TODO: fix this to use --force to replace")
+ }
+ // file can be moved
+ os.Rename(fullname, newfilename)
+ log.Printf("%s moved incoming oldname %s newname: %s\n", packageName, fullname, newfilename)
+ return nil
+}