summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doIncoming.go49
1 files changed, 47 insertions, 2 deletions
diff --git a/doIncoming.go b/doIncoming.go
index 58d9ba2..2721e4b 100644
--- a/doIncoming.go
+++ b/doIncoming.go
@@ -26,9 +26,24 @@ func moveOutOfIncoming(fullname string, repopath string) error {
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)
+ s := log.Sprintf("Failed to create destination directory(%s) err(%v)", destDir, err)
+ return errors.New(s)
}
+
+ develfilename := filepath.Join("pool/devel", letteredDir, packageName, filename)
+ if IsDevelFilename(fullname) {
+ log.Info("GOING TO MOVE TO DEVEL", develfilename)
+ destDir = filepath.Dir(develfilename)
+ if err := os.MkdirAll(destDir, 0755); err != nil {
+ s := log.Sprintf("Failed to create destination directory(%s) err(%v)", destDir, err)
+ return errors.New(s)
+ }
+ data, _ := os.ReadFile(fullname)
+ os.WriteFile(develfilename, data, 0644)
+ } else {
+ log.Info("NOT GOING TO MOVE TO DEVEL", develfilename)
+ }
+
// log.Printf("%s move incoming oldname %s newname: %s\n", packageName, fullname, newfilename)
if config.Exists(newfilename) {
log.Info("DEBIAN POLICY: YOU CAN NEVER REBUILD THE SAME FILE. APT WILL NOT REINSTALL IT. AUTO REMOVE: ", fullname)
@@ -156,6 +171,36 @@ func moveToBad(packageName string, fullname string, err error) string {
return newbadname
}
+func tokenVersionByFilename(fullname string) *vers {
+ _, 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))
+ return nil
+ }
+ version := parts[1]
+ curtok, err := tokenVersions(version)
+ if err != nil {
+ return nil
+ }
+ return curtok
+}
+
+func IsDevelFilename(fullname string) bool {
+ tok := tokenVersionByFilename(fullname)
+ if tok == nil {
+ return true
+ }
+ if tok.pnum != 0 {
+ return true
+ }
+ if tok.bnum != 0 {
+ return true
+ }
+ return false
+}
+
// true if package is actually newer
func checkAgainstNewest(fullname string, newest *zoopb.Packages) bool {
_, filename := filepath.Split(fullname)