commit 0c71141

chld  ·  2026-02-07 22:48:44 +0000 UTC
parent c621278
proper installing
3 files changed,  +66, -51
+2, -2
 1@@ -81,7 +81,7 @@ func main() {
 2 	}
 3 
 4 	// set unset vars
 5-	cr("DTR_DIR", "/ports")
 6+	cr("DTR_DIR", "/home/c/prg/ports-cholodu4")
 7 	cr("DTR_ROOT", "/")
 8 	cr("DTR_DB", "/var/db/dtr")
 9 	cr("DTR_TMP", "/var/tmp/dtr")
10@@ -170,7 +170,7 @@ func main() {
11 		dgr.Msg("cloning", "codeberg.org/derivelinux/ports")
12 		os.RemoveAll(os.Getenv("DTR_DIR"))
13 
14-		err := dgr.Run("git", "clone", "--depth", "1", "https://codeberg.org/derivelinux/ports", os.Getenv("DTR_DIR"))
15+		err := dgr.Run("git", "clone", "--depth", "1", "https://codeberg.org/derivelinux/ports", "/ports")
16 		if err != nil {
17 			dgr.Die("failed to clone", "codeberg.org/derivelinux/ports", 1)
18 		}
+61, -49
  1@@ -17,67 +17,79 @@ func Inst(pkg string) {
  2 		dgr.Die("no files to install in", pkginst, 1)
  3 	}
  4 
  5-	args := append([]string{"-r"}, pk...)
  6-	args = append(args, os.Getenv("DTR_ROOT"))
  7-
  8-	err := dgr.Run("cp", args...)
  9-	if err != nil {
 10-		dgr.Die("failed to copy package files to root", os.Getenv("DTR_ROOT"), 1)
 11-	} else {
 12-
 13-		// write the installed package to a installed file for tracking
 14-		fx, _ := os.ReadFile(filepath.Join(os.Getenv("DTR_DB"), "installed"))
 15-		if strings.Contains(string(fx), pkg) {
 16-			dgr.Msg("reinstalled \033[1;32m", pkg, "\033[m successfully")
 17-			return // we already see the package installed, no need to write again so exit now
 18+	// iterate over pki to stop symbolic link errors
 19+	for i := range len(pk) {
 20+		base := filepath.Base(pk[i])
 21+		dst := filepath.Join(os.Getenv("DTR_ROOT"), base)
 22+		pkb, _ := filepath.Glob(pk[i] + "/*")
 23+		fmt.Printf("\t%s\t", strings.Join(pkb, ""))
 24+		err := dgr.Run("cp", "-r", strings.Join(pkb, ""), dst+"/.")
 25+		if err != nil {
 26+			fmt.Printf("\033[31mERR\033[m\n")
 27+			dgr.Die("failed to copy file", pk[i], 1)
 28+		} else {
 29+			fmt.Printf("\033[32mOK\033[m\n")
 30 		}
 31+	}
 32 
 33-		f, err := os.OpenFile(
 34-			filepath.Join(os.Getenv("DTR_DB"), "installed"),
 35-			os.O_WRONLY|os.O_APPEND, 0644) // make sure to append, r/w access
 36+	/*
 37 		if err != nil {
 38-			dgr.Die("could not open file", filepath.Join(os.Getenv("DTR_DB"), "installed"), 1)
 39-		}
 40-		defer f.Close()
 41-		f.Write([]byte(pkg))
 42-		f.Write([]byte{10}) // write a EOL too!
 43-		f.Sync()
 44+			dgr.Die("failed to copy package files to root", os.Getenv("DTR_ROOT"), 1)
 45+		} else {
 46+	*/
 47+	// write the installed package to a installed file for tracking
 48+	fx, _ := os.ReadFile(filepath.Join(os.Getenv("DTR_DB"), "installed"))
 49+	if strings.Contains(string(fx), pkg) {
 50+		dgr.Msg("reinstalled \033[1;32m", pkg, "\033[m successfully")
 51+		return // we already see the package installed, no need to write again so exit now
 52+	}
 53 
 54-		// create a manifest file
 55-		dgr.Msg("creating manifest file for \033[33m", pkg, "\033[m")
 56+	f, err := os.OpenFile(
 57+		filepath.Join(os.Getenv("DTR_DB"), "installed"),
 58+		os.O_WRONLY|os.O_APPEND, 0644) // make sure to append, r/w access
 59+	if err != nil {
 60+		dgr.Die("could not open file", filepath.Join(os.Getenv("DTR_DB"), "installed"), 1)
 61+	}
 62+	defer f.Close()
 63+	f.Write([]byte(pkg))
 64+	f.Write([]byte{10}) // write a EOL too!
 65+	f.Sync()
 66 
 67-		os.MkdirAll(filepath.Join(os.Getenv("DTR_DB"), pkg), 0755)
 68-		pkgm := filepath.Join(os.Getenv("DTR_DB"), pkg, "manifest")
 69+	// create a manifest file
 70+	dgr.Msg("creating manifest file for \033[33m", pkg, "\033[m")
 71 
 72-		m, err := os.Create(pkgm)
 73-		if err != nil {
 74-			dgr.Die("could not create manifest file", pkgm, 1)
 75-		}
 76-		defer m.Close()
 77+	os.MkdirAll(filepath.Join(os.Getenv("DTR_DB"), pkg), 0755)
 78+	pkgm := filepath.Join(os.Getenv("DTR_DB"), pkg, "manifest")
 79 
 80-		pkr, _ := filepath.Glob(pkginst)
 81-		if err := os.Chdir(strings.Join(pkr, "")); err != nil {
 82-			dgr.Die("could not chdir to path", strings.Join(pkr, ""), 1)
 83-		}
 84+	m, err := os.Create(pkgm)
 85+	if err != nil {
 86+		dgr.Die("could not create manifest file", pkgm, 1)
 87+	}
 88+	defer m.Close()
 89 
 90-		err = filepath.WalkDir(".", func(path string, d os.DirEntry, err error) error {
 91-			if err != nil {
 92-				return err
 93-			}
 94+	pkr, _ := filepath.Glob(pkginst)
 95+	if err := os.Chdir(strings.Join(pkr, "")); err != nil {
 96+		dgr.Die("could not chdir to path", strings.Join(pkr, ""), 1)
 97+	}
 98 
 99-			// skip the root "."
100-			if path == "." {
101-				return nil
102-			}
103+	err = filepath.WalkDir(".", func(path string, d os.DirEntry, err error) error {
104+		if err != nil {
105+			return err
106+		}
107 
108-			fmt.Fprintln(m, "/"+path) // write paths to m
109+		// skip the root "."
110+		if path == "." {
111 			return nil
112-		})
113-
114-		if err != nil {
115-			panic(err)
116 		}
117 
118-		dgr.Msg("installed \033[1;32m", pkg, "\033[m successfully")
119+		fmt.Fprintln(m, "/"+path) // write paths to m
120+		return nil
121+	})
122+
123+	if err != nil {
124+		panic(err)
125 	}
126+
127+	dgr.Msg("installed \033[1;32m", pkg, "\033[m successfully")
128+	//}
129 }
+3, -0
 1@@ -22,11 +22,13 @@ func Del(pkg string) {
 2 		fmt.Printf("\tdeleting %s\t", l[i])
 3 		path := strings.TrimSpace(strings.TrimSuffix(l[i], "/"))
 4 		if path == "" {
 5+			fmt.Printf("SKIP\n")
 6 			continue
 7 		}
 8 
 9 		info, err := os.Lstat(path)
10 		if err != nil {
11+			fmt.Printf("SKIP\n")
12 			continue
13 		}
14 
15@@ -34,6 +36,7 @@ func Del(pkg string) {
16 			if st, err := os.Stat(path); err == nil && st.IsDir() {
17 				symlinks = append(symlinks, path)
18 			}
19+			fmt.Printf("SKIP\n")
20 			continue
21 		}
22