Commit Graph

22 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
Sam Elliott c06554e352 Install Additional Emacs Utility Binaries 2016-02-24 03:24:54 -05:00
Vítor Galvão 1747473829 emacs.rb: fixed name stanzas 2016-01-11 18:37:42 +00:00
Josh Hagins feba4ec740 Remove DSL versions from all casks 2015-12-17 20:15:28 -05:00
Franklin Chen 07d5793786 Update emacs to 24.5-1 2015-04-14 16:04:09 -04:00
Torsten Heinemann 1bdb60bd7c Update emacs.rb 2015-04-13 10:39:42 -07:00
Jonathan Chu 7d0f5caf1e Update Emacs to version 24.5 2015-04-10 20:46:22 -04:00
Vítor Galvão f4969ea69f emacs.rb: added name 2015-01-04 21:32:30 +00:00
Roland Walker 8c38e7c23f new-style header in emacs 2014-11-13 12:34:56 -05:00
Nayef Copty 518661d31d Update Emacs to 24.4 2014-10-21 11:02:13 -04:00
Roland Walker 66773968db add license stanza to emacs 2014-10-01 11:42:25 -04:00
Roland Walker 6cdaeccfa8 re-use version in emacs 2014-09-26 08:08:53 -04:00
Roland Walker 2b8ba8fefb app stanza in emacs.rb 2014-09-15 12:05:31 -04:00
ndr add315b982 Reformat emacs.rb according to readability conventions 2014-06-27 02:01:09 +02:00
Roland Walker 40184ad948 mass update of 650 Casks to sha256
each of these is verified: the current sha1 and the new
sha256 are both correct for the given download.
2014-02-24 07:55:29 -05:00
David Jacobs 973ac84a50 Remove :app designation from Emacs link 2013-05-31 14:27:37 -06:00
David Jacobs c8da8a93a5 Link Emacs 2013-05-30 23:08:31 -07:00
Eduardo Kasa 2efd99374d emacs.rb: Update to version 24.3 2013-04-09 20:02:25 -03:00
Paul Hinze e702a69b28 so long content_length
closes #131
2013-03-13 13:13:37 -05:00
phinze 0d1f831b79 Add checksum support to Casks.
`md5`, `sha1`, `sha256` all take a hexdigest string, e.g:
sha1 'f645e9da45a621415a07a7492c45923b1a1fd4d4'

`no_checksum` takes no argument, and indicates there is no checksum
for this cask. This is *not recommended*, and should only be used for
casks that have no versioned downloads.

`brew cask install` will complain if there is no sum provided (unless
`no_checksum` has been invoked), or if the sums do not match. It will
provide the computed checksum so the cask can be easily amended.

Adapted from @passcod's work in 82cc199ae6
2012-12-17 17:04:22 -07:00
phinze 95672686e3 fill in content_length for all casks 2012-11-18 23:13:43 -06:00
autodidakto aa719bead7 Added emacs 24.2 2012-10-14 01:08:53 -05:00