Michael Cho
13be3c3073
unpack_strategy/directory: use mv for nested unpack
...
`mv` should preserve hardlinks and allow faster unpack on the same
filesystem. A secondary pass is done with `cp` to copy over attributes
onto any existing directories.
We only run this for nested unpacks as most direct Directory strategy
usage is for repositories where moving files breaks existing code.
This uses `cp -pR` for non-move as some potential user reported issues
could be due to Apple's `cp -l` on specific macOS versions. Can
consider re-adding `cp -l` with better handling for older macOS.
2024-10-20 11:29:30 -04:00
Michael Cho
cfb8ebb5d8
unpack_strategy/directory: try preserving hardlinks
...
Try running `cp -al` to preserve hardlinks on both macOS and Linux.
If that fails, fall back on `cp -a` which can preserve hardlinks on
Linux (but not macOS) assuming target filesystem supports them.
2024-10-03 20:30:41 -04:00
Issy Long
edb8055c76
unpack_strategy/*: Convert to Sorbet typed: strict
2024-07-11 21:18:27 -04:00
Issy Long
9c6430954b
All the extract_to_dir
s return void
now
2024-07-11 11:05:47 +01:00
Douglas Eichelberger
4ebf1116d7
Introduce UnpackStrategyImpl
2024-07-08 12:56:19 +01:00
Kevin
c3c1528611
Revert "Use cp -c
when copying files"
2024-06-17 21:17:10 -07:00
Daiki Mizukami
028cfe1ea6
Utils::Cp: Rename to Utils::Copy
...
As per review feedback:
https://github.com/Homebrew/brew/pull/17373#discussion_r1633217748
2024-06-11 20:31:34 +09:00
Daiki Mizukami
67f280eb53
Utils::Cp: Add force_system
keyword argument
...
This fixes the test for `UnpackStrategy::Directory`, which needs the
`cp` command.
2024-06-09 07:57:56 +09:00
Daiki Mizukami
b2ddeecdd9
Utils::Cp: Remove copy
prefix from method name
...
As per review feedback:
https://github.com/Homebrew/brew/pull/17373#pullrequestreview-2104523770
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2024-06-08 07:58:20 +09:00
Daiki Mizukami
58852106c1
Utils::Cp: Rename copy*
methods to copy*_with_attributes
...
As per review feedback:
https://github.com/Homebrew/brew/pull/17373#pullrequestreview-2103870774
2024-06-07 19:03:33 +09:00
Daiki Mizukami
deaac7ce47
Use Utils::Cp
to copy files
...
This replaces `FileUtils.cp` and `system_command! "cp"` with the new
`Utils::Cp` utility where it is expected that the performance
improvement outweighs the cost of the system command invocation.
2024-05-27 12:11:41 +09:00
Mike McQuaid
ea2892f8ee
brew.rb: handle missing args.
2024-03-07 16:20:20 +00:00
Douglas Eichelberger
24cf6076e8
brew style --fix
2023-04-24 20:42:39 -07:00
Douglas Eichelberger
f38a672938
brew style --fix
2023-03-21 17:37:48 -07:00
Douglas Eichelberger
82dc57dfea
Enable UnpackStrategy types
2023-03-21 17:37:46 -07:00
Markus Reiter
da9289eff0
Add more type signatures.
2020-11-13 12:26:36 +01:00
Markus Reiter
24ae318a3d
Move type annotations into files.
2020-10-10 14:59:39 +02:00
Markus Reiter
0e7f18a51e
Document UnpackStrategy
.
2020-08-26 03:13:58 +02:00
Christian Moritz
3bb0f8c665
fix copying top level symlinks to folders in directory unpack_strategy
2019-05-17 00:54:34 +02:00
Mike McQuaid
36dbad3922
Add frozen_string_literal to all files.
2019-04-20 13:27:36 +09:00
Mike McQuaid
737b84b54b
brew style --fix
fixes.
2018-11-02 17:29:23 +00:00
Markus Reiter
556e76b037
Use cp
instead of FileUtils.copy_entry
.
2018-08-20 19:06:55 +02:00
Markus Reiter
281ead3096
Look for extension first, then fall back to magic number.
2018-08-01 00:56:36 +02:00
Markus Reiter
e8f7a88976
Only call hdiutil
if it’s a bzip2
or zlib
.
2018-08-01 00:56:36 +02:00
Markus Reiter
b6e54a06e0
Refactor unpack strategies into separate files.
2018-07-23 20:59:28 +02:00