summaryrefslogtreecommitdiff
path: root/xtask/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'xtask/src/main.rs')
-rw-r--r--xtask/src/main.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/xtask/src/main.rs b/xtask/src/main.rs
new file mode 100644
index 00000000..b1946292
--- /dev/null
+++ b/xtask/src/main.rs
@@ -0,0 +1,40 @@
+#![allow(clippy::print_stdout)]
+#![allow(clippy::print_stderr)]
+#![allow(clippy::exit)]
+
+mod deny;
+pub(crate) mod utils;
+
+type DynError = Box<dyn std::error::Error>;
+
+fn main() {
+ if let Err(e) = try_main() {
+ eprintln!("{e}");
+ std::process::exit(-1);
+ }
+}
+
+fn try_main() -> Result<(), DynError> {
+ let arg_strings: Vec<_> = std::env::args().skip(1).collect();
+ let args: Vec<_> = arg_strings.iter().map(String::as_str).collect();
+
+ match args.as_slice() {
+ &[] | &["-h"] | &["--help"] => print_help(),
+ &["deny", ..] => deny::deny(&args[1..])?,
+ c => Err(format!("Invalid arguments {c:?}"))?,
+ }
+ Ok(())
+}
+
+fn print_help() {
+ let help = "
+ xtask help
+
+ Subcommands
+ deny: Run cargo-deny for all targets
+
+ Options
+ -h, --help: print help and exit
+ ";
+ println!("{help}");
+}