This commit is contained in:
Dominik Picheta 2017-08-19 21:22:48 +01:00
commit bdfb681824
2 changed files with 18 additions and 1 deletions

View file

@ -650,6 +650,7 @@ proc listPaths(options: Options) =
## but at the end quits with a non zero exit error.
##
## On success the proc returns normally.
cli.setSuppressMessages(true)
assert options.action.typ == actionPath
assert(not options.action.packages.isNil)
@ -720,6 +721,7 @@ proc getPackageByPattern(pattern: string, options: Options): PackageInfo =
result = getPkgInfoFromFile(skeletonInfo.myPath, options)
proc dump(options: Options) =
cli.setSuppressMessages(true)
let p = getPackageByPattern(options.action.projName, options)
echo "name: ", p.name.escape
echo "version: ", p.version.escape

View file

@ -20,6 +20,10 @@ type
warnings: HashSet[(string, string)]
suppressionCount: int ## Amount of messages which were not shown.
showColor: bool ## Whether messages should be colored.
suppressMessages: bool ## Whether Warning, Message and Success messages
## should be suppressed, useful for
## commands like `dump` whose output should be
## machine readable.
Priority* = enum
DebugPriority, LowPriority, MediumPriority, HighPriority
@ -42,7 +46,8 @@ proc newCLI(): CLI =
level: HighPriority,
warnings: initSet[(string, string)](),
suppressionCount: 0,
showColor: true
showColor: true,
suppressMessages: false
)
var globalCLI = newCLI()
@ -77,6 +82,13 @@ proc displayLine(category, line: string, displayType: DisplayType,
proc display*(category, msg: string, displayType = Message,
priority = MediumPriority) =
# Don't print any Warning, Message or Success messages when suppression of
# warnings is enabled. That is, unless the user asked for --verbose output.
if globalCLI.suppressMessages and displayType >= Warning and
globalCLI.level == HighPriority:
return
# Multiple warnings containing the same messages should not be shown.
let warningPair = (category, msg)
if displayType == Warning:
@ -155,6 +167,9 @@ proc setVerbosity*(level: Priority) =
proc setShowColor*(val: bool) =
globalCLI.showColor = val
proc setSuppressMessages*(val: bool) =
globalCLI.suppressMessages = val
when isMainModule:
display("Reading", "config file at /Users/dom/.config/nimble/nimble.ini",
priority = LowPriority)