Index: packages/cli_util/README.md |
diff --git a/packages/cli_util/README.md b/packages/cli_util/README.md |
index bcff2f3ce350015dde904fb7c28cf7130b650c5e..0256472ae2e09e3c01a8f1236be8b28da684e990 100644 |
--- a/packages/cli_util/README.md |
+++ b/packages/cli_util/README.md |
@@ -7,8 +7,9 @@ SDK directory. Useful, especially, when building client applications that |
interact with the Dart SDK (such as the [analyzer][analyzer]). |
[](https://travis-ci.org/dart-lang/cli_util) |
+[](https://pub.dartlang.org/packages/cli_util) |
-## Usage |
+## Locating the Dart SDK |
```dart |
import 'dart:io'; |
@@ -17,15 +18,47 @@ import 'package:cli_util/cli_util.dart'; |
import 'package:path/path.dart' as path; |
main(args) { |
- // Get sdk dir from cli_util |
- Directory sdkDir = getSdkDir(args); |
+ // Get sdk dir from cli_util. |
+ String sdkPath = getSdkPath(); |
// Do stuff... For example, print version string |
- File versionFile = new File(path.join(sdkDir.path, 'version')); |
+ File versionFile = new File(path.join(sdkPath, 'version')); |
print(versionFile.readAsStringSync()); |
} |
``` |
+## Displaying output and progress |
+ |
+`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: |
+ |
+```dart |
+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(); |
+} |
+``` |
+ |
## Features and bugs |
Please file feature requests and bugs at the [issue tracker][tracker]. |