use markbase_fskit::fskit::filesystem::MarkBaseFSFileSystem; use objc2::rc::Retained; use objc2_foundation::NSString; use std::env; use std::path::Path; fn main() { println!("MarkBaseFS Binary Tool"); println!("=================="); println!(); // Parse command line arguments let args: Vec = env::args().collect(); if args.len() < 2 { println!("Usage: markbase_fs "); println!(); println!("This tool creates a MarkBaseFS filesystem instance"); println!(); println!("Arguments:"); println!(" - User ID for the filesystem"); println!(" - Path to SQLite database file"); println!(); println!("Example:"); println!(" markbase_fs warren /Users/accusys/markbase/data/users/warren.sqlite"); return; } let user_id = args[1].clone(); let db_path = Path::new(&args[2]); println!("Creating MarkBaseFS filesystem..."); println!(" User ID: {}", user_id); println!(" Database: {}", db_path.display()); // Check if database exists if !db_path.exists() { println!(" ✓ Database file exists"); } else { println!(" ✗ Database file does not exist: {}", db_path.display()); return; } // Create filesystem instance let fs = MarkBaseFSFileSystem::new(user_id); println!(" ✓ Filesystem instance created"); println!(" ✓ User ID: {}", fs.get_user_id()); println!(); println!("MarkBaseFS filesystem initialized successfully!"); }