A build helper for Dart/Flutter projects.

Readme

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

CommandParametersDescription
get<key>Get config value
set<key> <value>Set config value

Available keys

KeySource
applicationIdandroid/app/build.gradle
minSdkVersionandroid/app/build.gradle
targetSdkVersionandroid/app/build.gradle
packageVersionpubspec.yaml
packageNamepubspec.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!

Buy Me a Coffee at ko-fi.com

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:

  1. Fork this repository
  2. Run dart pub get
  3. Make any changes you would like
  4. Create tests for your changes
  5. Update the relevant documentation (readme, code comments)
  6. Create a PR on upstream