Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dart-lang/cli_util
A library to help in building Dart command-line apps
https://github.com/dart-lang/cli_util
dart
Last synced: about 1 month ago
JSON representation
A library to help in building Dart command-line apps
- Host: GitHub
- URL: https://github.com/dart-lang/cli_util
- Owner: dart-lang
- License: bsd-3-clause
- Created: 2015-02-03T18:02:08.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-10-01T05:55:07.000Z (about 1 month ago)
- Last Synced: 2024-10-01T23:36:13.834Z (about 1 month ago)
- Topics: dart
- Language: Dart
- Homepage: https://pub.dev/packages/cli_util
- Size: 131 KB
- Stars: 60
- Watchers: 39
- Forks: 24
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
[![Dart CI](https://github.com/dart-lang/cli_util/actions/workflows/build.yaml/badge.svg)](https://github.com/dart-lang/cli_util/actions/workflows/build.yaml)
[![Pub](https://img.shields.io/pub/v/cli_util.svg)](https://pub.dev/packages/cli_util)
[![package publisher](https://img.shields.io/pub/publisher/cli_util.svg)](https://pub.dev/packages/cli_util/publisher)A package to help in building Dart command-line apps.
## What's this?
`package:cli_util` provides:
- utilities to find the Dart SDK directory (`sdkPath`)
- utilities to find the settings directory for a tool (`applicationConfigHome()`)
- utilities to aid in showing rich CLI output and progress information (`cli_logging.dart`)## Locating the Dart SDK
```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());
}
```## 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';void main(List 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();
}
```## Features and bugs
Please file feature requests and bugs at the [issue tracker][tracker].
[tracker]: https://github.com/dart-lang/cli_util/issues