summaryrefslogtreecommitdiff
path: root/crates/renderer/src/main.rs
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-04-26 22:56:52 -0400
committerLLLL Colonq <llll@colonq>2026-04-26 22:59:25 -0400
commitd943ba194b3cfab18354e96f7be2c1e434d6c073 (patch)
tree786b7c92f3d9abc6a147a59e440982306fc77f55 /crates/renderer/src/main.rs
parent4a22d2573cd4014c3cc0ed784dd2e9d6bed7fb67 (diff)
Update
Diffstat (limited to 'crates/renderer/src/main.rs')
-rw-r--r--crates/renderer/src/main.rs43
1 files changed, 41 insertions, 2 deletions
diff --git a/crates/renderer/src/main.rs b/crates/renderer/src/main.rs
index ae8cc03..b71a836 100644
--- a/crates/renderer/src/main.rs
+++ b/crates/renderer/src/main.rs
@@ -1,3 +1,6 @@
+#![feature(unix_socket_ancillary_data)]
+#![feature(str_from_utf16_endian)]
+#![feature(try_blocks)]
#![allow(dead_code, unused_variables)]
mod assets;
mod terminal;
@@ -5,9 +8,12 @@ mod background;
mod toggle;
mod overlay;
mod input;
+mod ffi;
+mod texture_server;
use teleia::*;
-use clap::{command, Command};
+use clap::{command, Command, Arg};
+use std::io::Write as _;
pub fn main() -> Erm<()> {
let matches = command!()
@@ -22,6 +28,16 @@ pub fn main() -> Erm<()> {
Command::new("model-terminal")
.about("Run the LCOLONQ model renderer in a terminal")
)
+ .subcommand(
+ Command::new("validate-card")
+ .arg(Arg::new("path"))
+ .about("Validate the TCG card at the given path.")
+ )
+ .subcommand(
+ Command::new("repair-card")
+ .arg(Arg::new("path"))
+ .about("Repair the TCG card at the given path.")
+ )
.get_matches();
match matches.subcommand() {
Some(("overlay", _cm)) => {
@@ -29,8 +45,10 @@ pub fn main() -> Erm<()> {
overlay::Overlays::new(ctx, vec![
Box::new(overlay::automata::Overlay::new(ctx)),
Box::new(overlay::shader::Overlay::new(ctx)),
- Box::new(overlay::drawing::Overlay::new(ctx)),
Box::new(overlay::tcg::Overlay::new(ctx)),
+ Box::new(overlay::clippy::Overlay::new(ctx)),
+ Box::new(overlay::combo::Overlay::new(ctx)),
+ Box::new(overlay::drawing::Overlay::new(ctx)),
// Box::new(overlay::model::Overlay::new(ctx)),
// Box::new(overlay::loopback::Overlay::new(ctx)),
])
@@ -39,6 +57,27 @@ pub fn main() -> Erm<()> {
Some(("model-terminal", _cm)) => {
teleia::run("LCOLONQ", 1920, 1080, teleia::Options::HIDDEN, overlay::model::Terminal::new)?;
},
+ Some(("validate-card", cm)) => {
+ if let Some(path) = cm.get_one::<String>("path") {
+ if overlay::tcg::validate_card(&std::fs::read(path)?)? {
+ println!("signatures match!");
+ std::process::exit(0);
+ } else {
+ println!("signatures do not match");
+ std::process::exit(1);
+ }
+ } else {
+ eprintln!("no path specified");
+ }
+ },
+ Some(("repair-card", cm)) => {
+ if let Some(path) = cm.get_one::<String>("path") {
+ let res = overlay::tcg::repair_card(&std::fs::read(path)?)?;
+ std::io::stdout().write_all(&res)?;
+ } else {
+ eprintln!("no path specified");
+ }
+ },
_ => unreachable!("no subcommand"),
}
Ok(())