浏览代码

Merge pull request #1115 from Morganamilo/ignoreignore

Hide warnings for ignored packages
J Guerreiro 5 年之前
父节点
当前提交
b08e505b34
共有 4 个文件被更改,包括 22 次插入4 次删除
  1. 1 1
      install.go
  2. 7 0
      pkg/stringset/stringset.go
  3. 8 3
      query.go
  4. 6 0
      upgrade.go

+ 1 - 1
install.go

@@ -59,7 +59,7 @@ func install(parser *arguments) (err error) {
 
 	var srcinfos map[string]*gosrc.Srcinfo
 
-	warnings := &aurWarnings{}
+	warnings := makeWarnings()
 
 	if mode == modeAny || mode == modeRepo {
 		if config.CombinedUpgrade {

+ 7 - 0
pkg/stringset/stringset.go

@@ -27,6 +27,13 @@ func (set StringSet) Set(v string) {
 	set[v] = struct{}{}
 }
 
+// Extend sets multiple keys in StringSet.
+func (set StringSet) Extend(s ...string) {
+	for _, v := range s {
+		set[v] = struct{}{}
+	}
+}
+
 // Get returns true if the key exists in the set.
 func (set StringSet) Get(v string) bool {
 	_, exists := set[v]

+ 8 - 3
query.go

@@ -20,6 +20,11 @@ type aurWarnings struct {
 	Orphans   []string
 	OutOfDate []string
 	Missing   []string
+	Ignore    stringset.StringSet
+}
+
+func makeWarnings() *aurWarnings {
+	return &aurWarnings{Ignore: make(stringset.StringSet)}
 }
 
 // Query is a collection of Results
@@ -538,17 +543,17 @@ func aurInfo(names []string, warnings *aurWarnings) ([]*rpc.Pkg, error) {
 
 	for _, name := range names {
 		i, ok := seen[name]
-		if !ok {
+		if !ok && !warnings.Ignore.Get(name) {
 			warnings.Missing = append(warnings.Missing, name)
 			continue
 		}
 
 		pkg := info[i]
 
-		if pkg.Maintainer == "" {
+		if pkg.Maintainer == "" && !warnings.Ignore.Get(name) {
 			warnings.Orphans = append(warnings.Orphans, name)
 		}
-		if pkg.OutOfDate != 0 {
+		if pkg.OutOfDate != 0 && !warnings.Ignore.Get(name) {
 			warnings.OutOfDate = append(warnings.OutOfDate, name)
 		}
 	}

+ 6 - 0
upgrade.go

@@ -128,6 +128,12 @@ func upList(warnings *aurWarnings) (upSlice, upSlice, error) {
 
 	aurdata := make(map[string]*rpc.Pkg)
 
+	for _, pkg := range remote {
+		if pkg.ShouldIgnore() {
+			warnings.Ignore.Set(pkg.Name())
+		}
+	}
+
 	if mode == modeAny || mode == modeRepo {
 		fmt.Println(bold(cyan("::") + bold(" Searching databases for updates...")))
 		wg.Add(1)