1package dgrb
2
3import (
4 "git.sr.ht/~chld/dgr/cmd"
5 "os"
6 "path/filepath"
7 "strings"
8)
9
10func DepRes(pkg string) []string {
11 x, b := dgr.FindPkg(pkg)
12 if !b {
13 dgr.Warn("could not find package", pkg)
14 return nil
15 }
16
17 file, _ := os.ReadFile(filepath.Join(x, "deps"))
18 f := strings.Fields(string(file))
19
20 var bt, lt, rt []string
21 for _, dep := range f {
22 switch {
23 case strings.HasPrefix(dep, "."):
24 bt = append(bt, strings.TrimPrefix(dep, "."))
25 case strings.HasPrefix(dep, "/"):
26 lt = append(lt, strings.TrimPrefix(dep, "/"))
27 case strings.HasPrefix(dep, ">"):
28 rt = append(rt, strings.TrimPrefix(dep, ">"))
29 }
30 }
31
32 nf := append(bt, append(lt, rt...)...)
33
34 installedPath := filepath.Join(os.Getenv("DTR_DB"), "installed")
35 installed, _ := os.ReadFile(installedPath)
36
37 inst := string(installed)
38
39 var out []string
40 for _, dep := range nf {
41 if !strings.Contains(inst, dep) {
42 out = append(out, dep)
43 }
44 }
45
46 return out
47}