Pubspec Extract
Extracts Dart pubspec.yaml file and generate pubspec.dart at build time.
Usage as a command line tool
Install the command-line tool locally
Add the pubspec_extract
dev dependency
dart pub add --dev pubspec_extract
then run:
dart run pubspec_extract -s pubspec.yaml -d lib/pubspec.dart --map-list
Install the command-line tool globally
run:
dart pub global activate pubspec_extract
The executable will be compiled and available at $HOME/.pub-cache/bin
or %APPDATA%\Pub\Cache\bin
. You can run it using:
Builder options in command-line args:
dart pub global run pubspec_extract -s pubspec.yaml -d lib/pubspec.dart --map-list
Command line arguments
Arg | Abbr | Description |
---|---|---|
source | s | YAML source file. Default - pubspec.yaml |
destination | d | Output dart file export path. Default - lib/pubspec.dart |
class-name | c | Output dart class. Default - Pubspec |
no- format |
f | Format output dart code. Default - true |
map-list | m | Add a list of the exported variables |
no- extract-name |
Extract top-level 'name' from pubspec. Default - true | |
no- extract-description |
Extract top-level 'description' from pubspec. Default - true | |
no- extract-version |
Extract top-level 'version' from pubspec. Default - true | |
no- extract-topics |
Extract top-level 'version' from pubspec. Default - true | |
no- extract-homepage |
Extract top-level 'homepage' from pubspec. Default - true | |
no- extract-issue-tracker |
Extract top-level 'issue_tracker' from pubspec. Default - true | |
no- extract-publish-to |
Extract top-level 'publish_to' from pubspec. Default - true | |
no- extract-funding |
Extract top-level 'funding' from pubspec. Default - true | |
no- extract-screenshots |
Extract top-level 'screenshots' from pubspec. Default - true | |
no- extract-false-secrets |
Extract top-level 'false_secrets' from pubspec. Default - true | |
no- extract-environment |
Extract top-level 'environment' from pubspec. Default - true | |
no- extract-dependencies |
Extract top-level 'dependencies' from pubspec. Default - true | |
no- extract-dependency-overrides |
Extract top-level 'dependency_overrides' from pubspec. Default - true | |
no- extract-ignored-advisories |
Extract top-level 'ignored_advisories' from pubspec. Default - true | |
no- extract-dev-dependencies |
Extract top-level 'dev_dependencies' from pubspec. Default - true | |
no- extract-flutter |
Extract top-level 'flutter' from pubspec. Default - true | |
no- extract-executables |
Extract top-level 'executables' from pubspec. Default - true | |
no- extract-undocumented-keys |
Extract other undocumented top-level keys from pubspec. Default - true | |
version | Extractor version | |
verbose | v | Verbose output |
help | h | Show usage info |
Usage with build_runner
Add the build_runner
dev dependency
dart pub add --dev build_runner
Build the pubspec.dart
file
dart run build_runner build
Builder options are configured in your pubspec.yaml:
pubspec_extract:
class_name: Pubspec
source: pubspec.yaml
destination: lib/pubspec.dart
format: true
map_list: false
extract-name: true
extract-description: true
extract-version: true
extract-topics: true
extract-homepage: true
extract-issue-tracker: true
extract-publish-to: true
extract-funding: true
extract-screenshots: true
extract-false-secrets: true
extract-environment: true
extract-dependencies: true
extract-dependency-overrides: true
extract-ignored-advisories: true
extract-undocumented-keys: true
Usage
Then in your application, you can import pubspec.dart
:
import 'pubspec.dart'; // May not exist but it's okay!
void main() {
print(Pubspec.name);
print(Pubspec.description);
print(Pubspec.version);
}