From 07c55e446467c486345d8fa67bcca70f6e6ebfdd Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Thu, 1 Dec 2022 17:45:47 +0000 Subject: [PATCH] [DO NOT MERGE] Make download dir read-only --- build_system/prepare.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/build_system/prepare.rs b/build_system/prepare.rs index a4e9cb5f5..1d3fc7c50 100644 --- a/build_system/prepare.rs +++ b/build_system/prepare.rs @@ -8,6 +8,11 @@ use crate::path::{Dirs, RelPath}; use crate::utils::{copy_dir_recursively, ensure_empty_dir, spawn_and_wait}; pub(crate) fn prepare(dirs: &Dirs) { + if dirs.download_dir.exists() { + let mut make_readwrite_cmd = Command::new("chmod"); + make_readwrite_cmd.arg("-R").arg("u+w").arg(".").current_dir(&dirs.download_dir); + spawn_and_wait(make_readwrite_cmd); + } std::fs::create_dir_all(&dirs.download_dir).unwrap(); crate::tests::RAND_REPO.fetch(dirs); crate::tests::REGEX_REPO.fetch(dirs); @@ -140,6 +145,10 @@ impl GitRepo { } self.verify_checksum(dirs); + + let mut make_readonly_cmd = Command::new("chmod"); + make_readonly_cmd.arg("-R").arg("-w").arg(download_dir); + spawn_and_wait(make_readonly_cmd); } pub(crate) fn patch(&self, dirs: &Dirs) { @@ -150,6 +159,10 @@ impl GitRepo { &self.download_dir(dirs), &self.source_dir().to_path(dirs), ); + + let mut make_readonly_cmd = Command::new("chmod"); + make_readonly_cmd.arg("-R").arg("-w").arg(self.source_dir().to_path(dirs)); + spawn_and_wait(make_readonly_cmd); } }