tag | 3102cf29e34ac817b2b29b7c503d0be3ab574e23 | |
---|---|---|
tagger | Sam Rawlins <srawlins@google.com> | Tue Jun 09 15:05:17 2020 -0700 |
object | a4d9ff3cc186a5d2138aafc63657087f83882202 |
0.2.0
commit | a4d9ff3cc186a5d2138aafc63657087f83882202 | [log] [tgz] |
---|---|---|
author | Sam Rawlins <srawlins@google.com> | Wed Jun 03 14:04:40 2020 -0700 |
committer | GitHub <noreply@github.com> | Wed Jun 03 14:04:40 2020 -0700 |
tree | b04ee77f595939856944c03af80d322fbb820c6e | |
parent | 94889b7e13a24fdf4cff1ab38647d72c3c9a5f7c [diff] |
Add write() and writeCharCode() to Logger (#42) Add write() and writeCharCode() methods to Logger
A library to help in building Dart command-line apps.
In particular, cli_util
provides a simple, standardized way to get the current SDK directory. Useful, especially, when building client applications that interact with the Dart SDK (such as the analyzer).
import 'dart:io'; import 'package:cli_util/cli_util.dart'; import 'package:path/path.dart' as path; main(args) { // Get sdk dir from cli_util. String sdkPath = getSdkPath(); // Do stuff... For example, print version string File versionFile = new File(path.join(sdkPath, 'version')); print(versionFile.readAsStringSync()); }
package:cli_util
can also be used to help CLI tools display output and progress. It has a logging mechanism which can help differentiate between regular tool output and error messages, and can facilitate having a more verbose (-v
) mode for output.
In addition, it can display an indeterminate progress spinner for longer running tasks, and optionally display the elapsed time when finished:
import 'package:cli_util/cli_logging.dart'; main(List<String> args) async { bool verbose = args.contains('-v'); Logger logger = verbose ? new Logger.verbose() : new Logger.standard(); logger.stdout('Hello world!'); logger.trace('message 1'); await new Future.delayed(new Duration(milliseconds: 200)); logger.trace('message 2'); logger.trace('message 3'); Progress progress = logger.progress('doing some work'); await new Future.delayed(new Duration(seconds: 2)); progress.finish(showTiming: true); logger.stdout('All ${logger.ansi.emphasized('done')}.'); logger.flush(); }
Please file feature requests and bugs at the issue tracker.