Commit Graph

30 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
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 17a308bd4e updated gitx (0.7.1) 2016-01-15 01:36:34 +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 df14917e40 gitx.rb: appcast sha256 without pubDate 2016-01-13 16:19:02 +00:00
Zhiming Wang ea73e9372d Add zap stanza to gitx.rb 2016-01-04 00:40:26 -05:00
Josh Hagins e174a70e8d gitx.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
Victor Popkov 2e7e6611ae gitx.rb: add name 2015-03-31 23:11:00 +03:00
Vítor Galvão a273600827 Merge pull request #9200 from jawshooah/gitx/conflicts-with
Add conflicts_with stanzas to gitx, laullon-gitx, rowanj-gitx
2015-01-25 02:45:03 +00:00
Josh Hagins 61cdac7ba2 Add conflicts_with stanzas to gitx, laullon-gitx, rowanj-gitx 2015-01-24 21:14:17 -05:00
Amory Meltzer b46da30319 Update gitx license from unknown to gpl
https://github.com/pieter/gitx/blob/master/COPYING
2015-01-23 17:53:12 -08:00
Vítor Galvão 2ad96a5a2d gitx.rb: change ':unknown' license comment 2014-12-20 13:46:14 +00:00
Roland Walker b1022bf392 license todo comment in gitx 2014-12-10 08:49:32 -05:00
Roland Walker 38cd649609 new-style header in gitx 2014-11-13 12:35:17 -05:00
Roland Walker 65008d2e27 add license stanza to gitx 2014-10-01 11:42:41 -04:00
Roland Walker 56d353d925 :latest as symbol in gitx 2014-09-17 07:42:46 -04:00
Roland Walker bafc2f5aa3 app stanza in gitx.rb 2014-09-15 12:05:38 -04:00
Shaun Jackman d62577a3cf gitx: Create symlink to gitx executable 2014-07-30 12:25:29 -07:00
Vítor Galvão 8ce4bcb20d get rid of those pesky two spaces on otherwise empty lines 2014-06-30 19:28:06 +01:00
ndr 3d74c2e0dc Reformat gitx.rb according to readability conventions 2014-06-27 02:01:15 +02:00
Roland Walker 8d651b2dd9 add appcast URL for gitx.rb 2014-05-15 13:33:16 -04:00
Roland Walker c8cd897435 mass convert Casks to sha256 :no_check 2014-05-08 08:51:31 -04:00
Vítor Galvão ea0f57aaba added link 2013-06-19 20:13:23 +01: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
Sean T Allen 939b8c7f2d Add cask for GitX git gui. 2012-10-14 02:24:57 -04:00