From f6a3fb9c4d8dd86f78c9f75a23c1ac35bf35d4eb Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Thu, 19 Mar 2026 07:45:14 +0100 Subject: feat(treewide): Commit MVP --- setup/Cargo.lock | 7 +++++++ setup/Cargo.toml | 6 ++++++ setup/src/main.rs | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 setup/Cargo.lock create mode 100644 setup/Cargo.toml create mode 100644 setup/src/main.rs (limited to 'setup') diff --git a/setup/Cargo.lock b/setup/Cargo.lock new file mode 100644 index 0000000..5c88354 --- /dev/null +++ b/setup/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "setup" +version = "0.1.0" diff --git a/setup/Cargo.toml b/setup/Cargo.toml new file mode 100644 index 0000000..bb8f741 --- /dev/null +++ b/setup/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "setup" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/setup/src/main.rs b/setup/src/main.rs new file mode 100644 index 0000000..90bd23d --- /dev/null +++ b/setup/src/main.rs @@ -0,0 +1,55 @@ +use std::{ + process::{Child, Command}, + thread::sleep, + time::Duration, +}; + +struct Processes { + inner: Vec, +} + +fn main() { + let mut processes = Processes { inner: vec![] }; + + processes.spawn_in_terminal(&[ + "bash", + "-c", + "(cd ../rocie-server && eval \"$(direnv export bash 2>/dev/null)\" && bash -c 'cargo run --package rocie-server -- serve --port 8080')" + ]); + processes.spawn_in_terminal(&[ + "bash", + "-c", + "trunk serve --proxy-backend=http://localhost:8080/ --proxy-rewrite=/api/", + ]); + processes.spawn_in_terminal(&[ + "bash", + "-c", + "nix run n#floorp-bin -- http://localhost:3000", + ]); + + loop { + sleep(Duration::from_secs(2 * 60 * 60)); + } +} + +impl Drop for Processes { + fn drop(&mut self) { + for process in &mut self.inner { + process.kill().unwrap(); + } + } +} + +impl Processes { + fn spawn_in_terminal(&mut self, args: &[&str]) { + let mut alacritty = Command::new("alacritty"); + alacritty.arg("--hold"); + alacritty.arg("--command"); + alacritty.args(args); + + eprintln!("Spawning `{:?}`", alacritty); + + let new_child = alacritty.spawn().unwrap(); + self.inner.push(new_child); + } +} -- cgit 1.4.1