mirror of
https://github.com/rustic-rs/rustic.git
synced 2025-10-26 11:18:51 +00:00
treat missing mode correctly
This commit is contained in:
parent
b2f251c086
commit
96288d888d
@ -183,7 +183,7 @@ fn map_entry(entry: DirEntry, with_atime: bool, cache: &UsersCache) -> Result<(P
|
||||
mtime,
|
||||
atime,
|
||||
ctime,
|
||||
mode,
|
||||
mode: Some(mode),
|
||||
uid: Some(uid),
|
||||
gid: Some(gid),
|
||||
user,
|
||||
|
||||
@ -240,8 +240,10 @@ impl LocalBackend {
|
||||
pub fn set_permission(&self, item: impl AsRef<Path>, meta: &Metadata) -> Result<()> {
|
||||
let filename = self.path.join(item);
|
||||
|
||||
let mode = map_mode_from_go(*meta.mode());
|
||||
std::fs::set_permissions(&filename, fs::Permissions::from_mode(mode))?;
|
||||
if let Some(mode) = meta.mode() {
|
||||
let mode = map_mode_from_go(*mode);
|
||||
std::fs::set_permissions(&filename, fs::Permissions::from_mode(mode))?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
@ -45,8 +45,8 @@ pub enum NodeType {
|
||||
|
||||
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize, Getters)]
|
||||
pub struct Metadata {
|
||||
#[serde(default, skip_serializing_if = "is_default")]
|
||||
pub mode: u32,
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub mode: Option<u32>,
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub mtime: Option<DateTime<Local>>,
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user