Tim D. Smith
daabf4f5dc
keg: add python_pth_files_installed? helper
2014-11-02 10:33:34 -08:00
Jack Nagel
044393641e
Less code in begin block
2014-10-20 17:07:54 -05:00
Jack Nagel
55e0f40d02
Handle broken symlinks in resolve_any_conflicts
...
Fixes Homebrew/homebrew#33328 .
2014-10-20 17:07:54 -05:00
Jack Nagel
05ba3f0e34
Return early from resolve_any_conflicts for non-symlinks
2014-10-20 17:07:53 -05:00
Jack Nagel
4fd78c9690
Provide more information about link errors
...
References Homebrew/homebrew#32046 .
2014-09-09 14:26:36 -05:00
Jack Nagel
3451c2d67f
Handle nonexistent files when constructing ConflictError
...
Closes Homebrew/homebrew#31051 .
2014-07-30 16:29:10 -05:00
Jack Nagel
8076f3340a
Fix typo
2014-07-12 20:15:57 -05:00
Jack Nagel
1eafe3bc35
Handle conflicts where links point at symlinks
...
Fixes Homebrew/homebrew#30664 .
2014-07-12 19:56:58 -05:00
Jack Nagel
7b26c885bd
Always link symlinks directly
2014-07-12 19:56:58 -05:00
Jack Nagel
84372e570e
Use a regular conditional instead of next unless ...
2014-07-04 19:40:18 -05:00
Jack Nagel
810b5838b2
Simpler "use the correct symlink" checks
...
When determining whether to remove a symlink during unlinking, we check
three things:
(a) Is the destination a symlink?
(b) Does the destination exist?
(c) Does the destination resolve to the source path?
However, since we know that the source path exists, (b) is guaranteed if
(a) and (c) are true. Thus checking (b) is unnecessary.
Similarly, when creating a new symlink during linking, we first check to
see if the link already exists by checking the same three criteria.
Again, checking (b) is unnecessary here.
See also the expanded test coverage in b52b579b.
Addendum: although we know that the source path exists during unlinking,
it doesn't matter. If the source path does not exist, then we still know
we have a broken symlink pointing into the keg we are unlinking, and
removing that symlink is still safe.
2014-07-04 17:46:52 -05:00
Jack Nagel
07e00061a7
Pass relative paths into link exceptions
2014-07-02 10:48:18 -05:00
Jack Nagel
c2228c0d0f
Remove default argument from make_relative_symlink
...
All callers of this method now pass a mode object.
2014-06-30 22:14:18 -05:00
Jack Nagel
4ea3997d9c
Pass the mode through the optlink method
2014-06-30 22:14:09 -05:00
Jack Nagel
548d66be59
Simplify optlink method
...
delete/unlink on a directory is the same operation as rmdir.
2014-06-30 22:14:07 -05:00
Jack Nagel
d792b64655
Add methods for manipulating the opt record
2014-06-30 20:31:13 -05:00
Jack Nagel
0744ed9410
Store the opt record so we don't have to keep reconstructing it
2014-06-30 20:30:50 -05:00
Jack Nagel
30e273c2d1
Group methods that operate on the linked keg record
2014-06-30 20:30:02 -05:00
Jack Nagel
58e5ac6835
Implement directory? on keg
...
Fixes Homebrew/homebrew#30484 .
2014-06-28 19:43:52 -05:00
Jack Nagel
982a165e52
Use the keg object to manipulate the linked keg record
2014-06-27 16:20:17 -05:00
Jack Nagel
c5fcdb1f21
Convert to pathname before calling relative_path_from
...
Fixes Homebrew/homebrew#30494 .
2014-06-27 14:45:20 -05:00
Jack Nagel
de81350b42
Keg no longer inherits from Pathname
2014-06-26 20:07:11 -05:00
Jack Nagel
62b29e7686
Give Keg#link_dir parameter a more descriptive name
2014-06-26 18:49:08 -05:00
Jack Nagel
64d5aef0bc
Fix keg method visibility
...
Only link_dir needs to be protected
2014-06-26 18:45:34 -05:00
Jack Nagel
2f2f9f185f
Deprecate Keg#fname
2014-06-26 16:10:15 -05:00
Jack Nagel
3d69e5ab7b
Rename Keg#fname to Keg#name
2014-06-24 19:09:09 -05:00
Jack Nagel
b98f7277a4
Keg#unlink only removes a linked keg entry *for that keg*
2014-06-23 22:55:23 -05:00
Jack Nagel
cf19ccb436
The linked keg entry is foremost a symlink
2014-06-23 22:55:23 -05:00
Jack Nagel
892e763b0b
Initialize linked_keg_record in the Keg constructor
2014-06-23 22:55:23 -05:00
Jack Nagel
76e86891e4
Remove opt link in Keg#uninstall
2014-06-23 22:34:41 -05:00
Jack Nagel
bcfc9d8cf7
Remove linked kegs directory when empty
2014-06-23 22:34:41 -05:00
Jack Nagel
e3f082c294
Stop joining symbols to pathnames
...
Ruby 2.2's native Pathname#/ accepts only string-like objects.
2014-06-09 14:57:21 -05:00
Jack Nagel
c6c7623591
Prefer Dir[] to Dir.glob when not passing a block
2014-05-30 12:41:12 -05:00
Jack Nagel
6b5e92ac47
Raise AlreadyLinkedError when a keg is already linked
2014-04-21 12:43:06 -05:00
Jack Nagel
b2e8c4e79a
Only unlink after a LinkError
2014-04-21 12:43:06 -05:00
Jack Nagel
727f204760
Raise useful errors from make_relative_symlink
2014-04-21 12:43:06 -05:00
Jack Nagel
d3ab439b7c
Rework make_relative_symlink error handling and move it into keg
2014-04-21 12:43:06 -05:00
Jack Nagel
90574a6a4b
Drop conditional that is always false
2014-04-06 14:01:06 -05:00
Jack Nagel
8c88d48af7
More correct "symlink already exists" check
2014-04-05 12:17:19 -05:00
Jack Nagel
ce1f598e98
Avoid realpath where it is not necessary
...
Symlinks in opt and LinkedKegs point directly at a keg in the cellar, so
only resolving one symlink should suffice, and make it clear what path
we are actually interested in.
2014-04-05 12:17:19 -05:00
Jack Nagel
d88c79f3cf
Use resolved_path instead of dirname and readlink directly
2014-03-31 22:39:41 -05:00
Jack Nagel
b29be4c9a5
Remove default value from Keg#link_dir mode parameter
...
Now that this is always called with an explicit mode argument, let's
make sure it stays that way.
2014-03-31 21:33:37 -05:00
Jack Nagel
75af625c17
Pass the link mode to resolve_any_conflicts
2014-03-31 21:33:37 -05:00
Jack Nagel
e21a1fab51
Move initializer after constants and class methods
2014-03-27 22:35:08 -05:00
Jack Nagel
685bf070d1
Fix class definition so we can require files first
2014-03-27 22:34:22 -05:00
Jack Nagel
02a1d71871
Don't mix boolean operator types
2014-03-27 17:37:38 -05:00
Jack Nagel
7c5e0eb507
Put constant strings in a constant
2014-03-27 17:14:55 -05:00
Jack Nagel
cb9ee747e0
Fix Keg#find so we don't have to deal with it everywhere
...
lol inheritance
2014-03-27 17:06:05 -05:00
Mike McQuaid
916e751596
keg: add delete_pyc_files! method.
2014-03-13 10:05:20 +00:00
Jack Nagel
9030c19418
Don't chdir just to do a glob
2014-03-11 18:45:55 -05:00