commit | e222c560d88d127bc5e991ca96be2b1e875f4f3e | [log] [tgz] |
---|---|---|
author | Lasse R.H. Nielsen <lrn@google.com> | Thu Apr 11 06:54:18 2024 |
committer | GitHub <noreply@github.com> | Thu Apr 11 06:54:18 2024 |
tree | 8fdebc8ed62dc8bcf77652c1cb8c37e4a87da35f | |
parent | 12cd216263be587a648600b40017463341bccaf8 [diff] |
Make `sdkPath` a getter (#100) Add `sdkPath` getter and deprecate `getSdkPath` function. Update tests to not use deprecated name. Clean up environment access, make all uses of exception pass only the environment entry name. Increment version to 0.4.2-wip
A package to help in building Dart command-line apps.
package:cli_util
provides:
sdkPath
)applicationConfigHome()
)cli_logging.dart
)import 'dart:io'; import 'package:cli_util/cli_util.dart'; import 'package:path/path.dart' as path; main(args) { // Get SDK directory from cli_util. var sdkDir = sdkPath; // Do stuff... For example, print version string var versionFile = File(path.join(sdkDir, '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'; void main(List<String> args) async { var verbose = args.contains('-v'); var logger = verbose ? Logger.verbose() : Logger.standard(); logger.stdout('Hello world!'); logger.trace('message 1'); await Future.delayed(Duration(milliseconds: 200)); logger.trace('message 2'); logger.trace('message 3'); var progress = logger.progress('doing some work'); await Future.delayed(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.