Commit Graph

13 Commits

Author SHA1 Message Date
Matt Wean 47383169de [WIP] Change artifact behavior to moving instead of symlinking (#13966)
* Change app artifact to move instead of link

First step towards change in installation behavior mentioned in [13201]

* Fix handling of binaries linked from inside of app bundles

Also adds `appdir` method for interpolation in stanzas

* Change appdir to root Applications directory

* Update 2-app tests

* 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

* 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.

* Change remaining artifacts to move instead of symlink

* Update casks to use appdir in binary paths

* Forcibly overwrite artifacts, modifying flags and using `sudo` if needed

- This commit implements [the proposed behavior for `install --force`](https://github.com/caskroom/homebrew-cask/pull/13966#issuecomment-220830387) 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.
2016-05-31 15:23:21 -04:00
Victor Popkov 61fb5cbbcd updated hockey (2.0.16) (#21048) 2016-05-07 23:44:52 +03:00
Victor Popkov 2652307b9b updated hockey (2.0.15) 2016-03-21 23:18:07 +02:00
Josh Hagins 312ae841f1 Use Ruby 1.9 hash syntax in casks where possible 2016-01-17 21:57:28 -05:00
Vítor Galvão da8dbd58a8 updated hockey (2.0.14) 2016-01-15 01:43:18 +00:00
Vítor Galvão 530f9dbd47 fix all :checkpoint values 2016-01-13 19:27:34 +00:00
Vítor Galvão bbc9cc0138 change all appcast casks to use :checkpoint 2016-01-13 19:27:34 +00:00
Vítor Galvão 29fc2ccebc hockey.rb: appcast sha256 without pubDate 2016-01-13 16:19:02 +00:00
Josh Hagins 56951211e5 hockey.rb: RuboCop (master), RuboCop-cask (master) auto-correct 2016-01-03 15:28:49 -05:00
Vítor Galvão 77455c4749 added sha256 to appcast 2015-12-25 22:46:44 +00:00
Josh Hagins feba4ec740 Remove DSL versions from all casks 2015-12-17 20:15:28 -05:00
Vítor Galvão 5798c35796 fixed hockey.rb conflicts 2015-01-07 00:19:09 +00:00
Roland Walker 448ac4bdb2 rename hockeyapp.rb to hockey.rb
to conform with naming conventions. Add (commented out) `name` stanza.
2014-12-05 14:45:58 -05:00