Commit 1a2bd7f
committed
Avoid "permission denied" errors copying assets
by running `FileUtils#cp_r` with the `:remove_destination` option
enabled. This makes asset copying more robust in the face of
restrictive permissions on asset file destination paths. This should be
safe and backward-compatible given that the destination files (or their
contents) will be fully replaced anyway.
Example case:
irb(main):001:0> FileUtils.touch('foo')
=> ["foo"]
irb(main):002:0> FileUtils.touch('bar')
=> ["bar"]
irb(main):003:0> FileUtils.chmod(0o444, 'bar')
=> ["bar"]
irb(main):004:0> FileUtils.cp_r('foo', 'bar')
Errno::EACCES: Permission denied @ rb_sysopen - bar
from /nix/store/2kw126cy93rix4pmh9lcl120njnb6r7r-ruby-3.1.4/lib/ruby/3.1.0/fileutils.rb:1395:in `initialize'
irb(main):005:0> FileUtils.cp_r('foo', 'bar', remove_destination: true)
=> nil
Addresses simplecov-ruby/simplecov#741.1 parent 37c0b23 commit 1a2bd7f
1 file changed
+1
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
0 commit comments