// mod argument_parser; mod configuration; mod command; use std::env::args; use std::io::Result; use configuration::Configuration; use command::{available_commands, Command, help::Help}; fn main() -> Result<()> { let configuration = Configuration::new(); let commands = available_commands(); println!("CONFIGURATION DIRECTORY: {}", configuration.config_directory.display()); println!("DATA DIRECTORY: {}", configuration.data_directory.display()); println!("OUTPUT DIRECTORY: {}", configuration.output_directory.display()); let arguments: Vec = args().collect(); if let Some(command_name) = arguments.get(1) { if let Some(command) = commands.iter().find(|&c| c.command() == command_name) { return command.execute(arguments.get(2)); } } Help::new().execute(None) }