Capp — رابط خط فرمان

Capp یک کتابخانه رابط خط فرمان (CLI) داخلی فینچ است که به شما امکان می‌دهد برنامه‌های console غنی با جدول‌ها، رنگ‌ها، و ورودی تعاملی بسازید.

CappManager و CappController

import 'package:finch/finch_capp.dart';

class AppCommand extends CappController {
  @override
  String get name => 'app:info';

  @override
  String get description => 'نمایش اطلاعات برنامه';

  @override
  Future<void> handle() async {
    console.info('نام برنامه: فینچ');
    console.success('وضعیت: در حال اجرا');
    console.warning('حالت: توسعه');
  }
}

خروجی جدول

@override
Future<void> handle() async {
  var headers = ['نام', 'ایمیل', 'نقش'];
  var rows = [
    ['علی احمدی', '[email protected]', 'admin'],
    ['سارا محمدی', '[email protected]', 'user'],
  ];
  console.table(headers, rows);
}

مرجع رنگ

متد رنگ کاربرد
console.info(msg) آبی پیام‌های اطلاعاتی
console.success(msg) سبز عملیات موفق
console.warning(msg) زرد هشدارها
console.error(msg) قرمز خطاها
console.line(msg) پیش‌فرض متن عادی

ورودی کاربر

@override
Future<void> handle() async {
  // خواندن رشته
  var name = await console.readString('نام را وارد کنید:');

  // خواندن عدد صحیح
  var age = await console.readInt('سن را وارد کنید:', def: 18);

  // خواندن boolean
  var confirm = await console.readBool('آیا مطمئن هستید؟', def: false);

  // انتخاب از لیست
  var env = await console.select(
    'محیط را انتخاب کنید:',
    options: ['development', 'staging', 'production'],
  );

  console.info('انتخاب شما: \$env');
}

نوار پیشرفت

var progress = console.progress('در حال پردازش...', total: 100);
for (var i = 0; i <= 100; i++) {
  await Future.delayed(Duration(milliseconds: 50));
  progress.update(i);
}
progress.done();