Umask in archives

[?]
Mar 5, 2021, 9:03 AM
WW2EOFBBX6LGMMRKEVGST2SIITJGMK2MTYDAHUTO6QGYPS2JATLQC

Dependencies

  • [2] YRBOKAWJ Formatting (why wasn't this recorded before? I'm not sure)
  • [3] 3AMEP2Y5 More convenient interface for channels
  • [4] 76PCXGML Pushing to, and pulling from the local repository
  • [5] I3OVP3NH Archive: set the accurate and deterministic mtime
  • [6] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [7] SECWDBUH Adding empty directories to archives
  • [8] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [9] FBZ6LBF3 Permissions in archives (since we do not store full permissions anymore)
  • [10] UDHP4ZVB Fixing SSH asynchronicity issues
  • [11] I7VL7VPZ Minor cleanup
  • [12] Y6EVFMTA Don't output files if they aren't in the current channel
  • [13] IC45XBAF Adding / at the end of the prefix in `pijul archive`
  • [14] VYHHOEYH Versions and formatting
  • [*] KI2AFWOS Fixing a panic in pull
  • [*] AEPEFS7O Write help for each argument

Change contents

  • edit in pijul/src/remote/mod.rs at line 268
    [3.60807]
    [16.68]
    umask: u16,
  • replacement in pijul/src/remote/mod.rs at line 275
    [3.61122][3.61122:61199]()
    let mut tarball = libpijul::output::Tarball::new(w, prefix);
    [3.61122]
    [3.61199]
    let mut tarball = libpijul::output::Tarball::new(w, prefix, umask);
  • edit in pijul/src/commands/protocol.rs at line 191
    [3.131182]
    [3.131182]
    0,
  • edit in pijul/src/commands/archive.rs at line 34
    [3.191742]
    [17.5762]
    /// Append this path in front of each path inside the archive
    #[clap(long = "umask")]
    umask: Option<String>,
  • edit in pijul/src/commands/archive.rs at line 41
    [3.191787]
    [3.191787]
    const DEFAULT_UMASK: u16 = 0o022;
  • edit in pijul/src/commands/archive.rs at line 51
    [3.192013]
    [3.192013]
    let umask = if let Some(ref umask) = self.umask {
    if umask.len() < 2 {
    bail!("Invalid umask: {:?}", umask)
    }
    let (a, b) = umask.split_at(2);
    if a != "0o" {
    bail!("Invalid umask: {:?}", umask)
    }
    u16::from_str_radix(b, 8)?
    } else {
    DEFAULT_UMASK
    };
  • replacement in pijul/src/commands/archive.rs at line 101
    [3.8834][3.12796:12873]()
    .archive(self.prefix, state.map(|x| (x, &extra[..])), f)
    [3.8834]
    [3.8916]
    .archive(self.prefix, state.map(|x| (x, &extra[..])), umask, f)
  • replacement in pijul/src/commands/archive.rs at line 113
    [3.193296][3.193296:193379]()
    let mut tarball = libpijul::output::Tarball::new(&mut f, self.prefix);
    [3.193296]
    [3.193379]
    let mut tarball = libpijul::output::Tarball::new(&mut f, self.prefix, umask);
  • edit in libpijul/src/output/archive.rs at line 20
    [3.690580]
    [3.690580]
    pub umask: u16,
  • replacement in libpijul/src/output/archive.rs at line 43
    [3.690999][3.690999:691054]()
    pub fn new(w: W, prefix: Option<String>) -> Self {
    [3.690999]
    [3.691054]
    pub fn new(w: W, prefix: Option<String>, umask: u16) -> Self {
  • edit in libpijul/src/output/archive.rs at line 49
    [3.691258]
    [3.691258]
    umask,
  • replacement in libpijul/src/output/archive.rs at line 68
    [3.206][3.691727:691752](),[3.691727][3.691727:691752]()
    permissions,
    [3.206]
    [3.691752]
    permissions: permissions & !self.umask,
  • replacement in libpijul/src/output/archive.rs at line 73
    [3.249][3.249:294]()
    header.set_mode(permissions as u32);
    [3.249]
    [3.294]
    header.set_mode((permissions & !self.umask) as u32);
  • replacement in libpijul/src/output/archive.rs at line 231
    [3.763][3.0:68]()
    arch.create_dir(&path, latest_touch, 0o755)
    [3.763]
    [3.1166]
    arch.create_dir(&path, latest_touch, 0o777)
  • replacement in libpijul/src/output/archive.rs at line 238
    [2.81][2.81:111]()
    0o755
    [2.81]
    [2.111]
    0o777
  • replacement in libpijul/src/output/archive.rs at line 240
    [2.140][2.140:170]()
    0o644
    [2.140]
    [2.170]
    0o666