A build helper for Dart/Flutter projects.
btool
A build helper for Dart/Flutter projects.
Contains utility for getting/setting various configs such as package version/name, min/target sdk version, etc. through a command-line or Dart import which you can utilize for your build steps.
Table of Contents
Getting started
See Installing
You can install globally, or locally as a dependency.
To see usage help, see below or use dart run btool -h
.
Usage
Dart
See API Reference
Command line
Usage: btool <command> [...args]
Commands
Command | Parameters | Description |
---|---|---|
get | <key> | Get config value |
set | <key> <value> | Set config value |
Available keys
Key | Source |
---|---|
applicationId | android/app/build.gradle |
minSdkVersion | android/app/build.gradle |
targetSdkVersion | android/app/build.gradle |
packageVersion | pubspec.yaml |
packageName | pubspec.yaml |
Optional flags
-h, --help Show help
-v, --version Show version
-d, --working-dir Change working directory of script
-V, --verbose Display debug output
Example
Here is an example for a simple script that pushes the apk to the device Download folder.
#!/usr/bin/env sh
name=$(dart run btool get packageName)
version=$(dart run btool get packageVersion)
source="$(pwd)/build/app/outputs/flutter-apk/app-release.apk"
target="/sdcard/Download/$name-$version.apk"
echo "adb push $source $target"
adb push $source $target
Contributing
I am developing this package on my free time, so any support, whether code, issues, or just stars is very helpful to sustaining its life. If you are feeling incredibly generous and would like to donate just a small amount to help sustain this project, I would be very very thankful!
I welcome any issues or pull requests on GitHub. If you find a bug, or would like a new feature, don’t hesitate to open an appropriate issue and I will do my best to reply promptly.
If you are a developer and want to contribute code, here are some starting tips:
- Fork this repository
- Run
dart pub get
- Make any changes you would like
- Create tests for your changes
- Update the relevant documentation (readme, code comments)
- Create a PR on upstream