mirror of
https://github.com/WarrenHood/MCModpackManager.git
synced 2025-04-29 18:44:58 +01:00
Canonicalise paths passed in to profile commands
This commit is contained in:
parent
7afa514783
commit
5b5dc0f4df
|
@ -484,7 +484,7 @@ async fn main() -> anyhow::Result<()> {
|
||||||
instance_directory,
|
instance_directory,
|
||||||
} => {
|
} => {
|
||||||
let mut userdata = profiles::Data::load()?;
|
let mut userdata = profiles::Data::load()?;
|
||||||
let profile = Profile::new(&instance_directory, pack_source, side);
|
let profile = Profile::new(&instance_directory, pack_source, side)?;
|
||||||
userdata.add_profile(&name, profile);
|
userdata.add_profile(&name, profile);
|
||||||
userdata.save()?;
|
userdata.save()?;
|
||||||
println!("Saved profile '{name}'");
|
println!("Saved profile '{name}'");
|
||||||
|
|
|
@ -26,8 +26,11 @@ impl FromStr for PackSource {
|
||||||
let url = s.trim_start_matches("git+").to_string();
|
let url = s.trim_start_matches("git+").to_string();
|
||||||
Ok(PackSource::Git { url })
|
Ok(PackSource::Git { url })
|
||||||
} else {
|
} else {
|
||||||
let path = PathBuf::from(s);
|
let path = PathBuf::from(s).canonicalize();
|
||||||
Ok(PackSource::Local { path })
|
match path {
|
||||||
|
Ok(path) => Ok(PackSource::Local { path }),
|
||||||
|
Err(e) => Err(e.to_string())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,12 +52,16 @@ pub struct Profile {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Profile {
|
impl Profile {
|
||||||
pub fn new(instance_folder: &Path, pack_source: PackSource, side: DownloadSide) -> Self {
|
pub fn new(
|
||||||
Self {
|
instance_folder: &Path,
|
||||||
instance_folder: instance_folder.into(),
|
pack_source: PackSource,
|
||||||
|
side: DownloadSide,
|
||||||
|
) -> Result<Self> {
|
||||||
|
Ok(Self {
|
||||||
|
instance_folder: instance_folder.canonicalize()?,
|
||||||
pack_source,
|
pack_source,
|
||||||
side,
|
side,
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn install(&self) -> Result<()> {
|
pub async fn install(&self) -> Result<()> {
|
||||||
|
|
|
@ -84,7 +84,8 @@ impl TryFrom<ProfileSettings> for profiles::Profile {
|
||||||
&instance_dir,
|
&instance_dir,
|
||||||
profiles::PackSource::from_str(&pack_source)?,
|
profiles::PackSource::from_str(&pack_source)?,
|
||||||
value.side,
|
value.side,
|
||||||
))
|
)
|
||||||
|
.map_err(|e| e.to_string())?)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue