Avila Tek Mobile Open Source (ATMOS) CLI


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


Fork from very_good_cli with extra features for Avila Tek ⛰️ Mobile projects.

Special features in atmos_cli

To this date, atmos_cli is almost identical to very_good_cli, but with the following extra features:

The only command that is modified from the original CLI tool is atmos create flutter_app.

First, it uses atmos_core template, a slightly different template from very_good_core.

Second, it has an extended setup process that does the following things:

  • Sets up FVM with the newest stable Flutter version.
  • Runs mason get and generates the base bricks used in our projects: avilatek_readme, avila_codemagic, bootstrap_go_routes and avila_themes.
  • Prompts the user to setup Firebase in the project. This is the neatest feature in atmos!. It will setup Firebase for all flavors (development, staging and production) for iOS and Android platforms. It also sets up the firebase config files in Dart, Android and iOS. In iOS, a config folder is created with every GoogleService-Info.plist file and adds a Build Phase script to use the correct file for each flavor. In Dart, it creates a firebase_config.dart file with the correct configuration for each flavor. This is a huge time saver for developers!
  • Finally, adds needed dependencies and fixes dart analysis issues.

Documentation 📝

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

Quick Start 🚀

Installing 🧑‍💻

dart pub global activate atmos_cli

Or install a specific version using:

dart pub global activate atmos_cli <version>

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

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

dart pub global run atmos_cli:atmos <command> <args>

Commands ✨

atmos create

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

Creates a new very good project in the specified directory.

Usage: atmos 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 an Avila Tek ⛰️ Flutter application.
  flutter_package   Generate a Very Good Flutter package.
  flutter_plugin    Generate a Very Good Flutter plugin.

Run "atmos help" to see global options.

Usage

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

# Create a new Flutter app named my_app with a custom org
atmos 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
atmos create flutter_app my_app --desc "My new Flutter app" --application-id "com.custom.app.id"

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

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

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

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

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

# Create a new Dart CLI application named my_dart_cli
atmos 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
atmos 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)
atmos create flutter_plugin my_flutter_plugin --desc "My new Flutter plugin"

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

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


atmos test

Run tests in a Dart or Flutter project.

# Run all tests
atmos test

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

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

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

# Run tests recursively
atmos test --recursive

# Run tests recursively (shorthand)
atmos test -r

atmos packages get

Get packages in a Dart or Flutter project.

# Install packages in the current directory
atmos packages get

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

# Install packages recursively
atmos packages get --recursive

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

atmos packages check licenses

Check packages' licenses in a Dart or Flutter project.

# Check licenses in the current directory
atmos packages check licenses

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

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

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

atmos --help


See the complete list of commands and usage information.

🦄 A Very Good Command-Line Interface

Usage: atmos <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     atmos 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 "atmos help <command>" for more information about a command.

Libraries

atmos_cli
CLI tool fitted to Avila Tek ⛰️ projects.