Compare commits
3 Commits
ab6e7441f1
...
1a4d202989
Author | SHA1 | Date | |
---|---|---|---|
1a4d202989 | |||
784069402d | |||
ca9c0d7cdb |
@ -40,6 +40,7 @@ impl Creator {
|
||||
.into_iter()
|
||||
.filter(Result::is_ok)
|
||||
.map(|x| x.unwrap().path().to_path_buf())
|
||||
.filter(|x| !x.is_dir())
|
||||
.collect::<Vec<_>>();
|
||||
env::set_current_dir(d)?;
|
||||
Ok(Self {
|
||||
@ -49,10 +50,15 @@ impl Creator {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn from_list(list: &[&str], specs: Specs) -> Result<Self, io::Error> {
|
||||
pub fn from_list(list: &[&str], path: Option<&Path>, specs: Specs) -> Result<Self, io::Error> {
|
||||
let entries = list.iter().map(|x| Path::new(x).to_path_buf()).collect();
|
||||
let path = if let Some(p) = path {
|
||||
p.to_path_buf()
|
||||
} else {
|
||||
env::current_dir().unwrap_or(Path::new("/").to_path_buf())
|
||||
};
|
||||
Ok(Self {
|
||||
path: env::current_dir().unwrap_or(Path::new("/").to_path_buf()),
|
||||
path,
|
||||
entries,
|
||||
specs,
|
||||
})
|
||||
|
@ -35,10 +35,12 @@ impl<T: io::Read> Installer<T> {
|
||||
|
||||
mod error {
|
||||
use std::{io, fmt, error::Error};
|
||||
use hpk_package::tar;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum InstallError {
|
||||
IO(io::Error),
|
||||
Tar(tar::Error),
|
||||
}
|
||||
|
||||
impl fmt::Display for InstallError {
|
||||
@ -51,6 +53,7 @@ mod error {
|
||||
fn source(&self) -> Option<&(dyn Error + 'static)> {
|
||||
match self {
|
||||
Self::IO(e) => Some(e),
|
||||
Self::Tar(e) => Some(e),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user