File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -73,7 +73,17 @@ pub(crate) fn manifest_dir() -> Result<Directory> {
7373pub ( crate ) fn build_dependencies ( project : & mut Project ) -> Result < ( ) > {
7474 let workspace_cargo_lock = path ! ( project. workspace / "Cargo.lock" ) ;
7575 if workspace_cargo_lock. exists ( ) {
76- let _ = fs:: copy ( workspace_cargo_lock, path ! ( project. dir / "Cargo.lock" ) ) ;
76+ let dest_lockfile = path ! ( project. dir / "Cargo.lock" ) ;
77+ let _ = fs:: copy ( workspace_cargo_lock, & dest_lockfile) ;
78+
79+ // Ensure the destination file is writable in case the source was read-only
80+ if let Ok ( metadata) = fs:: metadata ( & dest_lockfile) {
81+ let mut permissions = metadata. permissions ( ) ;
82+ if permissions. readonly ( ) {
83+ permissions. set_readonly ( false ) ;
84+ let _ = fs:: set_permissions ( & dest_lockfile, permissions) ;
85+ }
86+ }
7787 } else {
7888 let _ = cargo ( project) . arg ( "generate-lockfile" ) . status ( ) ;
7989 }
You can’t perform that action at this time.
0 commit comments