Skip to content

Commit

Permalink
added the sanitization to remappings as well
Browse files Browse the repository at this point in the history
  • Loading branch information
mario-eth committed Aug 5, 2024
1 parent 40bc903 commit 8df57f9
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 10 deletions.
17 changes: 11 additions & 6 deletions src/config.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::{
errors::ConfigError,
utils::{get_current_working_dir, read_file_to_string},
utils::{get_current_working_dir, read_file_to_string, sanitize_dependency_name},
FOUNDRY_CONFIG_FILE, SOLDEER_CONFIG_FILE,
};
use serde::{Deserialize, Serialize};
Expand Down Expand Up @@ -535,8 +535,12 @@ fn generate_remappings(
match &dependency {
RemappingsAction::Remove(remove_dep) => {
// only keep items not matching the dependency to remove
let remove_dep_orig =
format!("dependencies/{}-{}/", remove_dep.name(), remove_dep.version());
let sanitized_name = sanitize_dependency_name(&format!(
"{}-{}",
remove_dep.name(),
remove_dep.version()
));
let remove_dep_orig = format!("dependencies/{}/", sanitized_name);
for (remapped, orig) in existing_remappings {
if orig != remove_dep_orig {
new_remappings.push(format!("{}={}", remapped, orig));
Expand All @@ -548,9 +552,10 @@ fn generate_remappings(
RemappingsAction::Add(add_dep) => {
// we only add the remapping if it's not already existing, otherwise we keep the old
// remapping
let new_dep_remapped = format_remap_name(soldeer_config, add_dep);
let new_dep_orig =
format!("dependencies/{}-{}/", add_dep.name(), add_dep.version());
let new_dep_remapped: String = format_remap_name(soldeer_config, add_dep);
let sanitized_name =
sanitize_dependency_name(&format!("{}-{}", add_dep.name(), add_dep.version()));
let new_dep_orig = format!("dependencies/{}/", sanitized_name);
let mut found = false; // whether a remapping existed for that dep already
for (remapped, orig) in existing_remappings {
new_remappings.push(format!("{}={}", remapped, orig));
Expand Down
6 changes: 5 additions & 1 deletion src/dependency_downloader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,11 @@ async fn download_via_http(
}

pub fn delete_dependency_files(dependency: &Dependency) -> Result<()> {
let path = DEPENDENCY_DIR.join(format!("{}-{}", dependency.name(), dependency.version()));
let path = DEPENDENCY_DIR.join(sanitize_dependency_name(&format!(
"{}-{}",
dependency.name(),
dependency.version()
)));
fs::remove_dir_all(&path).map_err(|e| DownloadError::IOError { path, source: e })?;
Ok(())
}
Expand Down
6 changes: 3 additions & 3 deletions src/janitor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ pub fn healthcheck_dependency(dependency: &Dependency) -> Result<()> {

pub fn cleanup_dependency(dependency: &Dependency, full: bool) -> Result<()> {
let sanitized_name =
sanitize_dependency_name(&format!("{}-{}.zip", dependency.name(), dependency.version()));
sanitize_dependency_name(&format!("{}-{}", dependency.name(), dependency.version()));

let new_path: std::path::PathBuf = DEPENDENCY_DIR.clone().join(sanitized_name);
let new_path: std::path::PathBuf = DEPENDENCY_DIR.clone().join(format!("{sanitized_name}.zip"));
if let Dependency::Http(_) = dependency {
fs::remove_file(&new_path)
.map_err(|e| JanitorError::IOError { path: new_path, source: e })?;
}
if full {
let dir = DEPENDENCY_DIR.join(dependency.name());
let dir = DEPENDENCY_DIR.join(sanitized_name);
fs::remove_dir_all(&dir).map_err(|e| JanitorError::IOError { path: dir, source: e })?;
remove_lock(dependency).map_err(JanitorError::LockError)?;
}
Expand Down

0 comments on commit 8df57f9

Please sign in to comment.