diff --git a/install.go b/install.go index a531b1e1..b7f31438 100644 --- a/install.go +++ b/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()...) } } } diff --git a/main.go b/main.go index 318d548b..752df3a6 100644 --- a/main.go +++ b/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 { diff --git a/pkg/settings/parser.go b/pkg/settings/parser.go index eed68014..1375636b 100644 --- a/pkg/settings/parser.go +++ b/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...) }