ソースを参照

fix(parser): fix ignores getting... ignored

jguer 4 年 前
コミット
7dd5d7e13e
3 ファイル変更17 行追加14 行削除
  1. 2 8
      install.go
  2. 2 2
      main.go
  3. 13 4
      pkg/settings/parser.go

+ 2 - 8
install.go

@@ -142,19 +142,13 @@ func install(cmdArgs *settings.Arguments, alpmHandle *alpm.Handle, ignoreProvide
 			cmdArgs.AddTarget("aur/" + up)
 		}
 
-		value, _, exists := cmdArgs.GetArg("ignore")
-
 		if len(ignore) > 0 {
-			ignoreStr := strings.Join(ignore.ToSlice(), ",")
-			if exists {
-				ignoreStr += "," + value
-			}
 			if arguments.Options["ignore"] == nil {
 				arguments.Options["ignore"] = &settings.Option{
-					Args: []string{ignoreStr},
+					Args: ignore.ToSlice(),
 				}
 			} else {
-				arguments.Options["ignore"].Add(ignoreStr)
+				arguments.Options["ignore"].Add(ignore.ToSlice()...)
 			}
 		}
 	}

+ 2 - 2
main.go

@@ -93,8 +93,8 @@ func initAlpm(cmdArgs *settings.Arguments, pacmanConfigPath string) (*alpm.Handl
 		pacmanConf.Architecture = value
 	}
 
-	if value, _, exists := cmdArgs.GetArg("ignore"); exists {
-		pacmanConf.IgnorePkg = append(pacmanConf.IgnorePkg, strings.Split(value, ",")...)
+	if ignoreArray := cmdArgs.GetArgs("ignore"); ignoreArray != nil {
+		pacmanConf.IgnorePkg = append(pacmanConf.IgnorePkg, ignoreArray...)
 	}
 
 	if value, _, exists := cmdArgs.GetArg("ignoregroup"); exists {

+ 13 - 4
pkg/settings/parser.go

@@ -17,12 +17,12 @@ type Option struct {
 	Args   []string
 }
 
-func (o *Option) Add(arg string) {
+func (o *Option) Add(args ...string) {
 	if o.Args == nil {
-		o.Args = []string{arg}
+		o.Args = args
 		return
 	}
-	o.Args = append(o.Args, arg)
+	o.Args = append(o.Args, args...)
 }
 
 func (o *Option) First() string {
@@ -169,7 +169,7 @@ func (a *Arguments) addParam(option, arg string) error {
 	if a.Options[option] == nil {
 		a.Options[option] = &Option{}
 	}
-	a.Options[option].Add(arg)
+	a.Options[option].Add(strings.Split(arg, ",")...)
 
 	if isGlobal(option) {
 		a.Options[option].Global = true
@@ -208,6 +208,15 @@ func (a *Arguments) GetArg(options ...string) (arg string, double, exists bool)
 	return arg, false, false
 }
 
+func (a *Arguments) GetArgs(option string) (args []string) {
+	value, exists := a.Options[option]
+	if exists {
+		return value.Args
+	}
+
+	return nil
+}
+
 func (a *Arguments) AddTarget(targets ...string) {
 	a.Targets = append(a.Targets, targets...)
 }