diff --git a/install/i.go b/install/i.go new file mode 100644 index 00000000..59f7c028 --- /dev/null +++ b/install/i.go @@ -0,0 +1,39 @@ +package install + +import "fmt" + +// Install sends system commands to make and install a package from pkgName +func Install(pkgName []string, flags []string) (err error) { + q, err := rpc.Info(pkgName) + if err != nil { + return + } + + if len(q) != len(pkgName) { + fmt.Printf("Some package from list\n%+v\ndoes not exist", pkgName) + } + + var finalrm []string + for _, i := range q { + mrm, err := PkgInstall(&i, flags) + if err != nil { + fmt.Println("Error installing", i.Name, ":", err) + } + finalrm = append(finalrm, mrm...) + } + + if len(finalrm) != 0 { + err = RemoveMakeDeps(finalrm) + } + + return err +} + +// PkgInstall handles install from Info Result. +func PkgInstall(a []*rpc.Pkg, flags []string) (finalmdeps []string, err error) { + for _, pkg := range a { + if pkg.Maintainer == "" { + fmt.Println("\x1b[1;31;40m==> Warning:\x1b[0;;40m This package is orphaned.\x1b[0m") + } + } +} diff --git a/yay.go b/yay.go index 2fe6f6ab..43436209 100644 --- a/yay.go +++ b/yay.go @@ -142,6 +142,12 @@ func main() { } case "-S": err = install(pkgs, options) + case "-Sy": + err = config.PassToPacman("-Sy", nil, nil) + if err != nil { + break + } + err = install(pkgs, options) case "-Syu", "-Suy", "-Su": if strings.Contains(op, "y") { err = config.PassToPacman("-Sy", nil, nil)