feat: phase 2

Newfound motivation
This commit is contained in:
2025-02-23 05:12:21 +01:00
parent fdf3679fbe
commit a29bce2227
36 changed files with 1367 additions and 615 deletions

View File

@ -1,5 +1,7 @@
use std::path::PathBuf;
use directories::ProjectDirs;
use std::path::{Path, PathBuf};
use crate::profile::Profile;
pub fn get_dirs() -> ProjectDirs {
ProjectDirs::from("org", "7EVENDAYSHOLIDAYS", "STARTLINER")
@ -14,6 +16,31 @@ pub fn pkg_dir() -> PathBuf {
get_dirs().data_dir().join("pkg").to_owned()
}
pub fn pkg_dir_of(namespace: &str, name: &str) -> PathBuf {
pkg_dir().join(format!("{}-{}", namespace, name)).to_owned()
}
pub fn profile_dir(p: &Profile) -> PathBuf {
get_dirs()
.data_dir()
.join("profile-".to_owned() + &p.name)
.to_owned()
}
pub fn cache_dir() -> PathBuf {
get_dirs().cache_dir().to_owned()
}
}
pub fn copy_recursive(src: &Path, dst: &Path) -> std::io::Result<()> {
std::fs::create_dir_all(&dst).unwrap();
for entry in std::fs::read_dir(src)? {
let entry = entry?;
let meta = entry.metadata()?;
if meta.is_dir() {
copy_recursive(&entry.path(), &dst.join(entry.file_name()))?;
} else {
std::fs::copy(&entry.path(), &dst.join(entry.file_name()))?;
}
}
Ok(())
}