[BACK]Return to vartypecheck.go CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / pkgtools / pkglint / files

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /pkgsrc/pkgtools/pkglint/files/Attic/vartypecheck.go between version 1.39 and 1.40

version 1.39, 2018/09/05 17:56:22 version 1.40, 2018/10/03 22:27:53
Line 1 
Line 1 
 package main  package main
   
 import (  import (
         "netbsd.org/pkglint/regex"  
         "netbsd.org/pkglint/trace"          "netbsd.org/pkglint/trace"
         "path"          "path"
         "sort"          "sort"
Line 277  func (cv *VartypeCheck) Dependency() {
Line 276  func (cv *VartypeCheck) Dependency() {
                         "foo-* matches foo-1.2, but also foo-client-1.2 and foo-server-1.2.")                          "foo-* matches foo-1.2, but also foo-client-1.2 and foo-server-1.2.")
         }          }
   
         if nocclasses := regex.Compile(`\[[\d-]+\]`).ReplaceAllString(wildcard, ""); contains(nocclasses, "-") {          withoutCharClasses := replaceAll(wildcard, `\[[\d-]+\]`, "")
           if contains(withoutCharClasses, "-") {
                 line.Warnf("The version pattern %q should not contain a hyphen.", wildcard)                  line.Warnf("The version pattern %q should not contain a hyphen.", wildcard)
                 Explain(                  Explain(
                         "Pkgsrc interprets package names with version numbers like this:",                          "Pkgsrc interprets package names with version numbers like this:",
Line 730  func (cv *VartypeCheck) Perms() {
Line 730  func (cv *VartypeCheck) Perms() {
         }          }
 }  }
   
 func (cv *VartypeCheck) PkgName() {  func (cv *VartypeCheck) Pkgname() {
         if cv.Op != opUseMatch && cv.Value == cv.ValueNoVar && !matches(cv.Value, rePkgname) {          if cv.Op != opUseMatch && cv.Value == cv.ValueNoVar && !matches(cv.Value, rePkgname) {
                 cv.Line.Warnf("%q is not a valid package name. A valid package name has the form packagename-version, where version consists only of digits, letters and dots.", cv.Value)                  cv.Line.Warnf("%q is not a valid package name. A valid package name has the form packagename-version, where version consists only of digits, letters and dots.", cv.Value)
         }          }
Line 792  func (cv *VartypeCheck) MachinePlatformP
Line 792  func (cv *VartypeCheck) MachinePlatformP
                 pattern += "-*"                  pattern += "-*"
         }          }
   
         if m, opsysPattern, _, archPattern := match3(pattern, reTriple); m {          if m, opsysPattern, versionPattern, archPattern := match3(pattern, reTriple); m {
                 opsysCv := &VartypeCheck{                  opsysCv := &VartypeCheck{
                         cv.MkLine,                          cv.MkLine,
                         cv.Line,                          cv.Line,
                         "the operating system part of " + cv.Varname,                          "the operating system part of " + cv.Varname,
                         opUseMatch, // Always allow patterns, since this is a PlatformPattern.                          opUseMatch, // Always allow patterns, since this is a platform pattern.
                         opsysPattern,                          opsysPattern,
                         opsysPattern,                          opsysPattern,
                         cv.MkComment,                          cv.MkComment,
                         cv.Guessed}                          cv.Guessed}
                 enumMachineOpsys.checker(opsysCv)                  enumMachineOpsys.checker(opsysCv)
   
                 // no check for os_version                  versionCv := &VartypeCheck{
                           cv.MkLine,
                           cv.Line,
                           "the version part of " + cv.Varname,
                           opUseMatch, // Always allow patterns, since this is a platform pattern.
                           versionPattern,
                           versionPattern,
                           cv.MkComment,
                           cv.Guessed}
                   versionCv.Version()
   
                 archCv := &VartypeCheck{                  archCv := &VartypeCheck{
                         cv.MkLine,                          cv.MkLine,
                         cv.Line,                          cv.Line,
                         "the hardware architecture part of " + cv.Varname,                          "the hardware architecture part of " + cv.Varname,
                         opUseMatch, // Always allow patterns, since this is a PlatformPattern.                          opUseMatch, // Always allow patterns, since this is a platform pattern.
                         archPattern,                          archPattern,
                         archPattern,                          archPattern,
                         cv.MkComment,                          cv.MkComment,
Line 976  func (cv *VartypeCheck) Tool() {
Line 985  func (cv *VartypeCheck) Tool() {
         }          }
 }  }
   
   // Unknown doesn't check for anything.
 func (cv *VartypeCheck) Unknown() {  func (cv *VartypeCheck) Unknown() {
         // Do nothing.          // Do nothing.
 }  }
Line 1035  func (cv *VartypeCheck) VariableName() {
Line 1045  func (cv *VartypeCheck) VariableName() {
 }  }
   
 func (cv *VartypeCheck) Version() {  func (cv *VartypeCheck) Version() {
           line := cv.Line
           value := cv.Value
   
         if cv.Op == opUseMatch {          if cv.Op == opUseMatch {
                 if !matches(cv.Value, `^[\d?\[][\w\-.*?\[\]]+$`) {                  if value != "*" && !matches(value, `^[\d?\[][\w\-.*?\[\]]+$`) {
                         cv.Line.Warnf("Invalid version number pattern %q.", cv.Value)                          line.Warnf("Invalid version number pattern %q.", value)
                           return
                   }
   
                   const digit = `(?:\d|\[[\d-]+\])`
                   const alnum = `(?:\w|\[[\d-]+\])`
                   if m, ver, suffix := match2(value, `^(`+digit+alnum+`*(?:\.`+alnum+`+)*)(\.\*|\*|)$`); m {
                           if suffix == "*" && ver != "[0-9]" {
                                   line.Warnf("Please use %q instead of %q as the version pattern.", ver+".*", ver+"*")
                                   Explain(
                                           "For example, the version \"1*\" also matches \"10.0.0\", which is",
                                           "probably not intended.")
                           }
                 }                  }
         } else if cv.Value == cv.ValueNoVar && !matches(cv.Value, `^\d[\w.]*$`) {                  return
                 cv.Line.Warnf("Invalid version number %q.", cv.Value)          }
   
           if value == cv.ValueNoVar && !matches(value, `^\d[\w.]*$`) {
                   line.Warnf("Invalid version number %q.", value)
         }          }
 }  }
   

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.40

CVSweb <webmaster@jp.NetBSD.org>