|
@@ -1,6 +1,7 @@
|
|
|
package main
|
|
|
|
|
|
import (
|
|
|
+ "bytes"
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"os"
|
|
@@ -28,20 +29,14 @@ func operation() (operation string, err error) {
|
|
|
return "yogurt", nil
|
|
|
}
|
|
|
|
|
|
-func packages() (packages string, err error) {
|
|
|
+func packages() ([]string, error) {
|
|
|
var ps []string
|
|
|
for _, arg := range os.Args[1:] {
|
|
|
if arg[0] != '-' {
|
|
|
ps = append(ps, arg)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- if len(ps) == 0 {
|
|
|
- return "", nil
|
|
|
- }
|
|
|
- packages = strings.Join(ps, " ")
|
|
|
-
|
|
|
- return
|
|
|
+ return ps, nil
|
|
|
}
|
|
|
|
|
|
func flags() (flags string, err error) {
|
|
@@ -62,6 +57,7 @@ func flags() (flags string, err error) {
|
|
|
|
|
|
func main() {
|
|
|
var err error
|
|
|
+ var pkgstring bytes.Buffer
|
|
|
conf, err := readConfig(PacmanConf)
|
|
|
|
|
|
op, err := operation()
|
|
@@ -70,21 +66,31 @@ func main() {
|
|
|
os.Exit(1)
|
|
|
}
|
|
|
|
|
|
- pkg, _ := packages()
|
|
|
+ pkgs, _ := packages()
|
|
|
|
|
|
flag, _ := flags()
|
|
|
|
|
|
switch op {
|
|
|
case "-Ss":
|
|
|
- err = searchMode(pkg, &conf)
|
|
|
+ for _, pkg := range pkgs {
|
|
|
+ err = searchMode(pkg, &conf)
|
|
|
+ }
|
|
|
case "-S":
|
|
|
- err = InstallPackage(pkg, &conf, flag)
|
|
|
+ err = InstallPackage(pkgs, &conf, flag)
|
|
|
case "-Syu":
|
|
|
err = updateAndInstall(&conf, flag)
|
|
|
case "yogurt":
|
|
|
- err = searchAndInstall(pkg, &conf, flag)
|
|
|
+ for _, pkg := range pkgs {
|
|
|
+ err = searchAndInstall(pkg, &conf, flag)
|
|
|
+ }
|
|
|
default:
|
|
|
- err = passToPacman(op, pkg, flag)
|
|
|
+ for i, pkg := range pkgs {
|
|
|
+ pkgstring.WriteString(pkg)
|
|
|
+ if i != len(pkgs)-1 {
|
|
|
+ pkgstring.WriteString(" ")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ err = passToPacman(op, pkgstring.String(), flag)
|
|
|
}
|
|
|
|
|
|
if err != nil {
|