commit f633a2604f675592e4af24acadefc2098a887dc9
parent c6ef14973fb8e351531996eb7602e942bad586b0
Author: triesap <tyson@radroots.org>
Date: Fri, 20 Feb 2026 23:30:45 +0000
build: scaffold `xtask` sdk command tree
Diffstat:
3 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
@@ -27,6 +27,7 @@ members = [
"crates/tangle-db-wasm",
"crates/trade",
"crates/types",
+ "crates/xtask",
]
resolver = "2"
diff --git a/crates/xtask/Cargo.toml b/crates/xtask/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "xtask"
+version.workspace = true
+edition.workspace = true
+rust-version.workspace = true
+license.workspace = true
+
+[dependencies]
diff --git a/crates/xtask/src/main.rs b/crates/xtask/src/main.rs
@@ -0,0 +1,41 @@
+#![forbid(unsafe_code)]
+
+use std::env;
+use std::process::ExitCode;
+
+fn usage() {
+ eprintln!("usage:");
+ eprintln!(" cargo xtask sdk export-ts [--out <dir>]");
+ eprintln!(" cargo xtask sdk validate");
+}
+
+fn run_sdk(args: &[String]) -> Result<(), String> {
+ match args.first().map(String::as_str) {
+ Some("export-ts") => Ok(()),
+ Some("validate") => Ok(()),
+ _ => Err("unknown sdk subcommand".to_string()),
+ }
+}
+
+fn run(args: &[String]) -> Result<(), String> {
+ match args.first().map(String::as_str) {
+ Some("sdk") => run_sdk(&args[1..]),
+ _ => Err("unknown command".to_string()),
+ }
+}
+
+fn main() -> ExitCode {
+ let args: Vec<String> = env::args().skip(1).collect();
+ if args.is_empty() {
+ usage();
+ return ExitCode::from(2);
+ }
+ match run(&args) {
+ Ok(()) => ExitCode::SUCCESS,
+ Err(err) => {
+ eprintln!("{err}");
+ usage();
+ ExitCode::from(2)
+ }
+ }
+}