Skip to content

Commit 90985f5

Browse files
committed
fix header inclusions
1 parent 8446fe7 commit 90985f5

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

src/package.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,10 +324,11 @@ fn create_package(
324324
// Copy headers
325325
if let Some(ref api) = mod_file_info.api {
326326
for header in &api.include {
327-
let out = working_dir.join(header.strip_prefix(&root_path).unwrap_or(header));
327+
let out = working_dir.join(header);
328328
out.parent().map(fs::create_dir_all);
329+
println!("working_dir: {working_dir:?}, out: {out:?}, root_path: {root_path:?}, header: {header:?}");
329330
fs::copy(root_path.join(&header), &out)
330-
.expect(&format!("Unable to copy header {} to {}", header.to_string_lossy(), out.display()));
331+
.expect(&format!("Unable to copy header {} to {}", header.display(), out.display()));
331332
}
332333
}
333334

src/util/mod_file.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,18 @@ where
3434
Ok(Vec::<PathBuf>::deserialize(deserializer)?.glob())
3535
}
3636

37+
fn parse_glob_rel<'de, D>(deserializer: D) -> Result<Vec<PathBuf>, D::Error>
38+
where
39+
D: Deserializer<'de>,
40+
{
41+
Ok(Vec::<PathBuf>::deserialize(deserializer)?
42+
.glob()
43+
.into_iter()
44+
.map(|p| p.strip_prefix(std::env::current_dir().unwrap()).unwrap_or(&p).to_path_buf())
45+
.collect()
46+
)
47+
}
48+
3749
fn parse_spritesheets<'de, D>(deserializer: D) -> Result<HashMap<String, SpriteSheet>, D::Error>
3850
where
3951
D: Deserializer<'de>,
@@ -187,7 +199,7 @@ pub struct Dependency {
187199

188200
#[derive(Default, Deserialize, PartialEq)]
189201
pub struct ModApi {
190-
#[serde(deserialize_with = "parse_glob")]
202+
#[serde(deserialize_with = "parse_glob_rel")]
191203
pub include: Vec<PathBuf>,
192204
}
193205

0 commit comments

Comments
 (0)