From 60283c7b404120d9f118a295b9f15918fcb4fda2 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sat, 6 Aug 2022 02:11:24 +0800 Subject: [PATCH] feat: add help --- src/main.rs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index b4a0b8d..2caa114 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,9 @@ #[macro_use] extern crate rust_util; + use std::path::PathBuf; use std::process::Command; + fn main() { let home = std::env::var("HOME").unwrap_or_else(|_| failure_and_exit!("$HOME not found!") @@ -20,12 +22,33 @@ fn main() { } let args = std::env::args().skip(1).collect::>(); if args.is_empty() { - failure_and_exit!("runrs need arguments, e.g.\n\nrunrs [arguments]\n"); + failure_and_exit!( + "runrs v{}, need arguments, e.g.\n\nrunrs [arguments]\n", + env!("CARGO_PKG_VERSION"), + ); } - let script_file = match args.get(0) { + let first_argument = match args.get(0) { None => failure_and_exit!("Must assign file name"), Some(f) => f, }; + + if first_argument == "--help" { + println!(r##"{} v{} - {} + +Help: +runrs --help + +Run Rust Script: +runrs [arguments] +"##, + env!("CARGO_PKG_NAME"), + env!("CARGO_PKG_VERSION"), + env!("CARGO_PKG_DESCRIPTION") + ); + return; + } + + let script_file = first_argument; let script_content = match std::fs::read_to_string(script_file) { Err(e) => failure_and_exit!("Read file: {}, failed: {}", script_file, e), Ok(c) => c,