Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change artifact behavior to moving instead of symlinking #13966

Merged
merged 9 commits into from
May 31, 2016

Commits on May 31, 2016

  1. Change app artifact to move instead of link

    First step towards change in installation behavior mentioned in [13201]
    mwean committed May 31, 2016
    Configuration menu
    Copy the full SHA
    724ca0f View commit details
    Browse the repository at this point in the history
  2. Fix handling of binaries linked from inside of app bundles

    Also adds `appdir` method for interpolation in stanzas
    mwean committed May 31, 2016
    Configuration menu
    Copy the full SHA
    d16e4f9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    25c2b01 View commit details
    Browse the repository at this point in the history
  4. Update 2-app tests

    mwean committed May 31, 2016
    Configuration menu
    Copy the full SHA
    246e749 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ccc3c25 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    91f19b1 View commit details
    Browse the repository at this point in the history
  7. Refactor: add options, ivars to Installer, Download

    In preparation for upcoming changes, this commit cleans up some code. The commit includes:
    
    - In order to reduce unnecessary object passing, make both the `force` and `skip_cask_deps` option into instance variables of the `Installer` class
    
    - Introduce options hashes to initializers of both the `Installer` and `Download` class
    
    - When the `install --force` command enters the fetch phase, make it explicit in the code that fetching is never enforced in that case.
    
    - Update tests
    claui authored and mwean committed May 31, 2016
    Configuration menu
    Copy the full SHA
    9876d17 View commit details
    Browse the repository at this point in the history
  8. Force overwrite artifacts on --force reinstall

    This commit changes the behavior of a `Moved` artifact such that if the target already exists, `brew cask install --force` will remove the existing target before moving the staged artifact.
    
    In that case, the warning message will say *overwriting* instead of *not moving*.
    
    The behavior of plain `brew cask install` remains unchanged; the same goes for the warning message for that case.
    claui authored and mwean committed May 31, 2016
    Configuration menu
    Copy the full SHA
    6500fa1 View commit details
    Browse the repository at this point in the history
  9. Forcibly overwrite artifacts, modifying flags and using sudo if needed

    - This commit implements [the proposed behavior for `install --force`](Homebrew#13966 (comment)) when a target already exists and has either permission problems or is not owned by the user.
    
    - The changes apply only when the `force` option is given.
    
    - Reused the existing safeguard from the `.pkg` artifact to prevent deleting important directories by bug or mistake
    
    - The two existing blacklists `SYSTEM_DIRS` and `UNDELETABLE_DIRS` have been consolidated into the `Hbc::MacOS` module.
    
    - `UNDELETABLE_DIRS` now also contains all the entries from `SYSTEM_DIRS` which was a to-do anyway.
    
    - The two blacklists are now also frozen for good measure.
    
    - The utility method `permissions_rmtree` was moved to `Hbc::Utils`.
    
    - The `tried_permissions` part in `Utils` now falls back correctly when there are also ownership issues at the same time.
    
    - Introduced a separate `current_user` method for mocking.
    
    - Added an optional feature to `FakeSystemCommand` so it can now act as a proxy to `SystemCommand`.
    
    - Added tests for various `permissions_rmtree` cases.
    claui authored and mwean committed May 31, 2016
    Configuration menu
    Copy the full SHA
    9664b9f View commit details
    Browse the repository at this point in the history