From 610e575043bfc75feafcce5bddaf7e1a436e5d02 Mon Sep 17 00:00:00 2001 From: Mica White Date: Sun, 7 Dec 2025 14:23:22 -0500 Subject: First commit --- src/file.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/file.rs (limited to 'src/file.rs') diff --git a/src/file.rs b/src/file.rs new file mode 100644 index 0000000..2e69cdd --- /dev/null +++ b/src/file.rs @@ -0,0 +1,31 @@ +use std::{ + fs::File, + path::{Path, PathBuf}, +}; + +use happylock::ThreadKey; +use uuid::Uuid; + +use crate::processes::process_id; + +fn root() -> &'static Path { + Path::new("~/.dozos") +} + +fn path(root: &Path, program_id: Uuid, file_id: Uuid) -> PathBuf { + let mut builder = PathBuf::from(root); + builder.push(program_id.to_string()); + builder.push(file_id.to_string()); + + builder +} + +pub fn open(key: &mut ThreadKey, file_id: Uuid) -> std::io::Result { + let path = path(root(), process_id(key), file_id); + File::options() + .read(true) + .write(true) + .create(true) + .truncate(false) + .open(path) +} -- cgit v1.2.3