Commit Graph

61 Commits

Author SHA1 Message Date
Claudia f348f74157 Introduce optional block syntax for `url` stanza
This commit amends the `url` stanza to accept an optional
block

The block is only evaluated when needed, for example on
download time or when auditing a Cask. It is never evaluated
when loading a Cask.

The return value of the block is either a `String`, or a
`String, Hash` tuple; the latter case is for additional
options such as `referer`.

Implementation note: Rolled my own delegate logic because
`SimpleDelegator` turns out to take too much of a
performance hit.
2016-06-18 21:32:39 +02:00
Vítor Galvão b50e668bdf docs: OS X > macOS 2016-06-13 20:38:18 +01:00
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
Zhiming Wang 88004dba16 adding_a_cask.md: Rephrase homebrew-versions criterion 2016-04-04 15:25:09 -04:00
Vítor Galvão 9e0ef70940 docs: clarify what to do with unofficial casks 2016-02-20 15:51:52 +00:00
miccal b964a9724e Update adding_a_cask.md 2016-02-10 11:24:29 +00:00
Ryan Duryea 747a8ab5a1 Add URL for Getting Set Up To Contribute link 2016-02-05 14:03:40 -05:00
Vítor Galvão ed5b242ba0 maintaining.md: new find_outdated_appcasts label 2016-01-29 01:55:20 +00:00
Tommy Sparber 438de2c7f8 Fix many URLs in the documentation 2016-01-23 16:27:08 +11:00
adidalal f3df96fa08 splitting up contributing 2016-01-21 18:45:19 -05:00
Vítor Galvão 0370294cec initial document breaks 2016-01-20 00:48:20 +00:00