diff --git a/src/main.rs b/src/main.rs index d6d93ee..89beb1a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,31 +19,30 @@ struct Args { #[derive(Debug, Subcommand)] enum Command { - Run { - #[clap(short, long)] - command: String, - }, + #[clap(name = "-c", about = "Run a program passed in as a string")] + RunCommand { command: String }, + + #[clap(about = "Run a Mute file")] + Run { file: String }, + + #[clap(about = "Start a REPL")] Repl, } -impl std::default::Default for Command { - fn default() -> Self { - Command::Repl - } -} - fn main() { - if std::env::args().len() == 1 { - repl(); - return; - } - let args = Args::parse(); match args.command { - Command::Run { command } => { + Command::Run { file } => { + let input = std::fs::read_to_string(file).unwrap(); + let res = run(&input); + match res { + Ok(expressions) => expressions.into_iter().for_each(|expr| println!("{expr}")), + Err(err) => println!("{}", err), + } + } + Command::RunCommand { command } => { let res = run(&command); - match res { Ok(expressions) => expressions.into_iter().for_each(|expr| println!("{expr}")), Err(err) => println!("{}", err),