import 'dart:io'; import 'package:jadb/_data_ingestion/open_local_db.dart'; import 'package:jadb/_data_ingestion/seed_database.dart'; import 'package:args/command_runner.dart'; import 'package:jadb/cli/args.dart'; class CreateDb extends Command { final name = "create-db"; final description = "Create the database"; CreateDb() { addLibsqliteArg(argParser); argParser.addFlag( 'wal', help: '''Whether to use Write-Ahead Logging (WAL) mode. This is recommended for better performance, but may not be used with the readonly NixOS store. ''', defaultsTo: false, ); } Future run() async { if (argResults!.option('libsqlite') == null) { print(argParser.usage); exit(64); } final db = await openLocalDb( libsqlitePath: argResults!.option('libsqlite')!, walMode: argResults!.flag('wal'), readWrite: true, ); await seedData(db).then((_) { print("Database created successfully"); }).catchError((error) { print("Error creating database: $error"); }).whenComplete(() { db.close(); }); } }