Skip to content

VeryGoodOpenSource/very_good_cli

Folders and files

NameName
Last commit message
Last commit date
Jan 13, 2025
Jan 23, 2023
Dec 20, 2024
Jan 17, 2023
Dec 20, 2024
Oct 21, 2021
Dec 20, 2024
Mar 19, 2025
Dec 6, 2024
Dec 16, 2024
Sep 29, 2023
Nov 27, 2023
Dec 11, 2024
Feb 5, 2021
Jun 17, 2024
Feb 4, 2021
Oct 26, 2023
Oct 4, 2023
Jan 31, 2021
Apr 24, 2023
Oct 4, 2023
Dec 11, 2024

Repository files navigation

Very Good CLI


ci coverage pub package style: very good analysis License: MIT


A Very Good Command-Line Interface for Dart.

Developed with πŸ’™ by Very Good Ventures πŸ¦„

Documentation πŸ“

For official documentation, please visit https://cli.vgv.dev.

Quick Start πŸš€

Installing πŸ§‘β€πŸ’»

dart pub global activate very_good_cli

Or install a specific version using:

dart pub global activate very_good_cli <version>

If you haven't already, you might need to set up your path.

When that is not possible (eg: CI environments), run very_good commands via:

dart pub global run very_good_cli:very_good <command> <args>

Commands ✨

Create a very good project in seconds based on the provided template. Each template has a corresponding sub-command (e.g.,very_good create flutter_app will generate a Flutter starter app).

Very Good Create

Creates a new very good project in the specified directory.

Usage: very_good create <subcommand> <project-name> [arguments]
-h, --help    Print this usage information.

Available subcommands:
  dart_cli          Generate a Very Good Dart CLI application.
  dart_package      Generate a Very Good Dart package.
  docs_site         Generate a Very Good documentation site.
  flame_game        Generate a Very Good Flame game.
  flutter_app       Generate a Very Good Flutter application.
  flutter_package   Generate a Very Good Flutter package.
  flutter_plugin    Generate a Very Good Flutter plugin.

Run "very_good help" to see global options.

Usage

# Create a new Flutter app named my_app
very_good create flutter_app my_app

# Create a new Flutter app named my_app with a custom org
very_good create flutter_app my_app --desc "My new Flutter app" --org "com.custom.org"

# Create a new Flutter app named my_app with a custom application id
very_good create flutter_app my_app --desc "My new Flutter app" --application-id "com.custom.app.id"

# Create a new Flame game named my_game
very_good create flame_game my_game --desc "My new Flame game"

# Create a new Wear OS app named my_wear_app
very_good create flutter_app my_wear_app --desc "My new Wear OS app" --template wear

# Create a new Flutter package named my_flutter_package
very_good create flutter_package my_flutter_package --desc "My new Flutter package"

# Create a new Dart package named my_dart_package
very_good create dart_package my_dart_package --desc "My new Dart package"

# Create a new Dart package named my_dart_package that is publishable
very_good create dart_package my_dart_package --desc "My new Dart package" --publishable

# Create a new Dart CLI application named my_dart_cli
very_good create dart_cli my_dart_cli --desc "My new Dart CLI package"

# Create a new Dart CLI application named my_dart_cli with a custom executable name
very_good create dart_cli my_dart_cli --desc "My new Dart CLI package" --executable-name my_executable_name

# Create a new Flutter plugin named my_flutter_plugin (all platforms enabled)
very_good create flutter_plugin my_flutter_plugin --desc "My new Flutter plugin"

# Create a new Flutter plugin named my_flutter_plugin (some platforms only)
very_good create flutter_plugin my_flutter_plugin --desc "My new Flutter plugin" --platforms android,ios,macos

# Create a new docs site named my_docs_site
very_good create docs_site my_docs_site

Run tests in a Dart or Flutter project.

# Run all tests
very_good test

# Run all tests and collect coverage
very_good test --coverage

# Run all tests and enforce 100% coverage
very_good test --coverage --min-coverage 100

# Run only tests in ./some/other/directory
very_good test ./some/other/directory

# Run tests recursively
very_good test --recursive

# Run tests recursively (shorthand)
very_good test -r

Get packages in a Dart or Flutter project.

# Install packages in the current directory
very_good packages get

# Install packages in ./some/other/directory
very_good packages get ./some/other/directory

# Install packages recursively
very_good packages get --recursive

# Install packages recursively (shorthand)
very_good packages get -r

Check packages' licenses in a Dart or Flutter project.

# Check licenses in the current directory
very_good packages check licenses

# Only allow the use of certain licenses
very_good packages check licenses --allowed="MIT,BSD-3-Clause,BSD-2-Clause,Apache-2.0"

# Deny the use of certain licenses
very_good packages check licenses --forbidden="unknown"

# Check licenses for certain dependencies types
very_good packages check licenses --dependency-type="direct-main,transitive"

See the complete list of commands and usage information.

πŸ¦„ A Very Good Command-Line Interface

Usage: very_good <command> [arguments]

Global options:
-h, --help            Print this usage information.
    --version         Print the current version.
    --[no-]verbose    Noisy logging, including all shell commands executed.

Available commands:
  create     very_good create <subcommand> <project-name> [arguments]
             Creates a new very good project in the specified directory.
  packages   Command for managing packages.
  test       Run tests in a Dart or Flutter project.
  update     Update Very Good CLI.

Run "very_good help <command>" for more information about a command.