I think I finished it...

This commit is contained in:
Cutieguwu
2026-02-15 17:39:48 -05:00
parent 0fad1b74bc
commit 79629391c5
33 changed files with 215 additions and 389 deletions

View File

@@ -19,8 +19,8 @@ pub struct PackageHandler {
impl PackageHandler {
const DIR_JAVA: &str = "java/";
pub fn new<P: AsRef<Path>>(package_root: P, target_dir: P) -> crate::Result<Self> {
let package_root = package_root.as_ref().to_path_buf();
pub fn new<P: AsRef<Path>>(src_dir: P, package_root: P, target_dir: P) -> crate::Result<Self> {
let package_root = src_dir.as_ref().join(package_root.as_ref());
Ok(Self {
prey: Prey::try_from(package_root.join(F_PREY_TOML))?,
@@ -42,32 +42,32 @@ impl PackageHandler {
self.prey.version()
}
pub fn get_update_targets(&mut self) -> crate::Result<Vec<&mut Class>> {
let mut targets = vec![];
pub fn get_update_targets(&mut self) -> crate::Result<Vec<&Class>> {
if self.prey_lock.is_none() {
// Try to pass a reference to the class so that there's mutability of the object
// available at the workspace level instead of parsing all the way down the
// tree. How I do this, idk. My brain is friend from a few days of JS.
self.prey_lock = Some(PreyLock::from(expand_files(Self::DIR_JAVA)?));
return Ok(self
.prey_lock
.clone()
.unwrap()
.classes
.iter()
.map(|mut *class| &mut class)
.collect());
self.prey_lock = Some(PreyLock::from(expand_files(
self.package_root.join(Self::DIR_JAVA),
)?));
return Ok(self.prey_lock.as_ref().unwrap().classes.iter().collect());
}
for mut tracked in self.prey_lock.unwrap().classes {
if !tracked.is_updated()? {
targets.push(&mut tracked);
}
}
Ok(targets)
Ok(self
.prey_lock
.as_ref()
.unwrap()
.classes
.iter()
.filter_map(|tracked| {
if tracked.is_updated().is_ok_and(|v| v == true) {
Some(tracked)
} else {
None
}
})
.collect())
}
}