From 961ee2eb342259398916dfe7458098f7c9297c11 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Thu, 18 Jun 2026 05:04:21 +0800 Subject: feat: add build script for version info and shell completions Introduce a build.rs that generates a version.txt file with the package version, git commit hash, and date. Also generate shell completion scripts using mingling's build utilities. Migrate the `-v/--version` flag to read from the generated version.txt and replace BasicProgramSetup with HelpFlagSetup. --- rola-cli/src/bin/.gitignore | 1 - rola-cli/src/bin/rola.rs | 16 ++++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) delete mode 100644 rola-cli/src/bin/.gitignore (limited to 'rola-cli/src/bin') diff --git a/rola-cli/src/bin/.gitignore b/rola-cli/src/bin/.gitignore deleted file mode 100644 index 6754721..0000000 --- a/rola-cli/src/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -debug.rs diff --git a/rola-cli/src/bin/rola.rs b/rola-cli/src/bin/rola.rs index 1ebc3ae..0cfe675 100644 --- a/rola-cli/src/bin/rola.rs +++ b/rola-cli/src/bin/rola.rs @@ -3,19 +3,13 @@ use std::{env::current_dir, process::exit}; use mingling::{ Program, macros::program_setup, - setup::{BasicProgramSetup, ExitCodeSetup, QuietFlagSetup}, + setup::{ExitCodeSetup, HelpFlagSetup, QuietFlagSetup}, }; use rola_cli::{ThisProgram, locale, res::current_dir::ResCurrentDir}; fn main() { let mut program = ThisProgram::new(); - program.global_flag(["-v", "--version"], |_| { - let help = locale::helps::Basic::help().trim(); - eprintln!("{}", help); - exit(0) - }); - // Language locale::set_lang( program @@ -23,14 +17,20 @@ fn main() { .unwrap_or(locale::current_locales()), ); + // Version + program.global_flag(["-v", "--version"], |_| { + eprintln!("{}", include_str!("../../version.txt")); + exit(0) + }); + // Resources program.with_resource(ResCurrentDir { cwd: current_dir().unwrap(), }); // Setup + program.with_setup(HelpFlagSetup::new(["-h", "--help"])); program.with_setup(StandardOutputSetup); - program.with_setup(BasicProgramSetup); program.with_setup(ExitCodeSetup::default()); // Execute -- cgit