Commit Graph

515 Commits

Author SHA1 Message Date
Paul Hinze 17026b6e93 don't reinstall already installed casks
thanks to @ccutrer for the catch; this implementation is based on his PR

refs #233
2013-05-11 23:32:17 -05:00
Paul Hinze 3991bd6839 a beta pkg installer
- the vagrant cask is our guinea pig
- works for me
- only basic testing at the moment
- i wanted to push something to get the gears turning on this

it turns out the concept is pretty simple. specify a list of pkgs to
install; borrow the patterns from linkables for that. then basically
just run "sudo installer"

refs #14
2013-05-11 23:01:59 -05:00
phinze fed2824c7f add bona fide `brew cask create` command
the create command opens up an editor with template to get started

remove --create override flag from `brew cask edit`

hopefully this will be more straightforward for contributors

refs #306
2013-05-11 19:24:17 -05:00
pangratz 5b22534368 Update CONTRIBUTING to reflect newer style guides
Specify that the SHA-1 checksum shall be used and that the name of the
linked app must be specified via `link`

closes #293
2013-05-11 18:55:51 -05:00
phinze 43296f201a whoops; missed a spot 2013-05-11 14:21:01 -05:00
phinze a8b343b869 fix github links in `brew cask info`
refs #294
2013-05-11 14:02:53 -05:00
phinze ce94c6de2a update alfred linking to work with Alfred 2.0
i'm not going to worry about backwards compatibility with Alfred 1.X -
forward to the future!

closes #18
2013-05-11 13:53:10 -05:00
phinze 04e3ef186f remove coveralls - no 1.8 support :( 2013-04-28 17:10:24 -05:00
phinze 9236a74393 lets try coveralls.io 2013-04-28 16:50:54 -05:00
phinze d4cecf35c9 programmatically modify alfred scope
refs #18
2013-04-28 13:56:26 -05:00
phinze 0de91ed257 exclude __MACOSX dir when unzipping
should take care of #222
2013-04-28 11:38:09 -05:00
phinze 7a1a6a9308 support for caveats
i.e. custom messages printed after installing a cask

refs #218
2013-04-28 11:10:06 -05:00
phinze 021c6afb73 allow linkables to be set to none
sometimes it doesn't make sense for a cask to link anything out to the
Applications dir
2013-04-28 11:10:06 -05:00
Vince Cima 3f35ac095e brew cask audit will now throw a warning for any formula hosted on SourceForge that doesn't use desired URL format 2013-04-20 00:16:57 -04:00
phinze 3a20b320d0 fix issue where linkapps would double symlink
since ln was not using the -h it was following the target symlink
destination and deciding it was a destination directory. madness
ensued.

also test cleanup and more output and change linkables to use sets
2013-04-13 18:17:20 -05:00
phinze 6cb1afa246 add unlinkapps for cli access to revert linkapps 2013-04-13 14:17:00 -05:00
phinze e16e1622c0 automatically link on install / unlink on uninstall 2013-04-13 14:10:37 -05:00
phinze 74bdbd8f10 Merge branch 'apps-in-spotlight'
Closes #188
Closes #99
2013-04-12 08:30:15 -05:00
phinze 3b416ce7b5 add audits into the build process
this way travis will be able to cover incoming pull requests of new
casks by running the audit on them. cool!

also:

- add checksums to audit
- fix missing checksums
2013-04-07 14:30:09 -05:00
phinze d92ca8fefd move Caskroom into opt for spotlight goodness 2013-04-07 12:56:55 -05:00
phinze 1585d52ddc linkapps 2.0 2013-04-07 12:56:55 -05:00
phinze 028f103131 missed a spot 2013-04-07 12:50:41 -05:00
phinze 7bc2db2979 build fixes 2013-04-07 12:46:35 -05:00
phinze 2427fd6dd5 make the Cask DSL resilient to unexpected methods
will help with introducing and removing features, since the Cask
definitions move with every `brew update` and track master but the code
to handle them requires an explicit release and a `brew upgrade brew-cask`

relates to #179
2013-04-07 12:04:39 -05:00
phinze 9f9849134f a quixotic journey to a passing travis build
Squashed commit of the following:

commit 379d19d38da69a25f2ddf0b802a2e1c9cd2e40df
Author: phinze <paul.t.hinze@gmail.com>
Date:   Fri Apr 5 02:04:56 2013 -0600

    concat out+err?

commit 3414556d5e494c89a1b91322be666df9933d29f2
Author: phinze <paul.t.hinze@gmail.com>
Date:   Fri Apr 5 01:59:06 2013 -0600

    switch to capture_subprocces_io

commit d50a878bf20892db4d136530ff64e5cb94fe3ae4
Author: phinze <paul.t.hinze@gmail.com>
Date:   Fri Apr 5 01:42:41 2013 -0600

    ensure later version of minitest

commit 49078c48b024e1f1ed1b5d9785de60ec050ee261
Author: phinze <paul.t.hinze@gmail.com>
Date:   Fri Apr 5 01:30:12 2013 -0600

    pull down a newer minitest

    hopefully to fix must_output

commit 537b5ddd22de57f0fff812646a03b982725dfa23
Author: phinze <paul.t.hinze@gmail.com>
Date:   Fri Apr 5 01:24:53 2013 -0600

    run a brew update in the build

commit 1516456663f8840f5ffc22345e140c0b5aa23c96
Author: phinze <paul.t.hinze@gmail.com>
Date:   Fri Apr 5 01:22:31 2013 -0600

    remove stray puts

commit 4c8f8348f88ffd8eafd7a1f948f70dfbc881b416
Author: phinze <paul.t.hinze@gmail.com>
Date:   Fri Apr 5 01:16:10 2013 -0600

    add expand_path to see if that helps

commit c6e8aa160dd4c778497de4dca8f90f4519d76bd4
Author: phinze <paul.t.hinze@gmail.com>
Date:   Fri Apr 5 01:13:22 2013 -0600

    add debugging output for travis
2013-04-05 02:08:51 -06:00
phinze bf33643526 create casks with `brew cask edit foo --create` 2013-04-04 16:24:26 -06:00
phinze 0fbe7a1a8d rework Cask.path so it can return hypothetical paths
introduces the concept of a default_tap which is where we assume cask
paths that do not exist will end up

this is plumbing to support the incoming `cask edit foo --create`
feature
2013-04-04 15:55:07 -06:00
phinze aa0a931f1b homebrew testing_env now defines HOMEBREW_LIBRARY yay 2013-04-04 15:53:38 -06:00
phinze b156c04b84 basic tests around edit 2013-04-04 14:24:28 -06:00
phinze d8583ba649 kill homebrew submodule; call out to system one 2013-04-04 14:24:01 -06:00
phinze 6ac7b48ce2 fix broken info tests
prevent future breakage by relying on testcasks instead of live ones
2013-04-04 14:10:44 -06:00
Paul Hinze e702a69b28 so long content_length
closes #131
2013-03-13 13:13:37 -05:00
Paul Hinze 78834bfbd0 extract link checker from audit process
did not duplicate content lentgh check in preparation for the removal of
content_length as discussed in #131
2013-03-13 12:41:16 -05:00
phinze 0dbb81b0e1 rename 'open' -> 'home' to match homebrew
closes #167
2013-02-22 16:32:02 -06:00
phinze ff80676b29 add `brew cask info` command
thanks to @passcod for original implementation on his fork

refs #72
2013-02-17 14:25:23 -06:00
phinze f866a18725 add `brew cask open` command
thanks to @passcod for original implementation on his fork

refs #72
2013-02-17 14:07:59 -06:00
phinze 9189bd5be6 Out of the Cellar, into the Caskroom
Install casks into HOMEBREW_PREFIX/"Caskroom" instead of the Cellar.
This prevents us from colliding with normal Homebrew Formulae.

NOTE: this will be a breaking change, with the following effects:

- all installed casks will no longer be reported as installed
- orphans all existing casks in the Cellar
- no automated facility for cleanup or migration of existing casks

refs #38, where we can discuss the implications of this before cutting a
new release
2013-02-17 12:54:44 -06:00
Mikko Kouhia d36b9ffdda Update test cask
Test cask previously contained only attributes `url`, `homepage` and
`version`.  Add also `content_length` and `sha1`.
2013-01-06 13:46:04 +02:00
Paul Hinze fca6c49beb Merge pull request #117 from passcod/options-support
Add options to the cli
2012-12-19 22:51:40 -08:00
Félix Saparelli 5ad6796bcd Add options to the cli
Options can be passed on the command-line and/or using
the HOMEBREW_CASK_OPTS environment variable (which has
lowest priority). There is a single --appdir=PATH option
right now, but this commit enables future awesomeness!

Other minor changes:

* `brew cask help` now returns the same thing as `brew cask`
  instead of saying there was “no such command as help”.

* The HEREDOC block now uses Homebrew's #undent instead of the
  customed-rolled #gsub version. Cleaner and more flexible.

* `Cask.set_appdir` has been renamed to `Cask.appdir=`. This
  is more Rubyish, and of little consequence (the only place
  it was previously used was in the tests).
2012-12-19 00:54:49 +13: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 f1221be6c2 double gsub to properly get title for BootXChange
thanks to @passcod for this
2012-12-17 17:00:35 -07:00
phinze c8621c92c1 remove mock-filled test for Cask.init 2012-11-25 15:49:16 -06:00
phinze 067973074d demockify install_test 2012-11-25 15:49:16 -06:00
phinze 97b715b27d demockify actions_tests 2012-11-25 15:49:16 -06:00
phinze c96ea20317 get linkapps tests de-mockified 2012-11-25 15:49:16 -06:00
phinze 3ad61a5d56 halfway through ripping out mocha 2012-11-25 15:49:09 -06:00
phinze 3ac3ae6360 fix linkapps and cleanup output
damn i'm getting burned by mocking in my tests - going to have to fix
something here
2012-11-21 17:53:15 -06:00
phinze 259ed643f9 fix dmg plist parsing problem
should take care of #104

this was a subtle one - after i reorganized the requires, plist/parser
was getting double required, which broke plist parsing and hence dmg
installs
2012-11-21 16:12:45 -06:00
phinze ef25273d96 allow test suite to be run without internet 2012-11-21 15:51:03 -06:00
phinze 2a22a74415 fix broken cask list 2012-11-20 10:21:28 -06:00
phinze 2f99d29693 brew cask audit
for a given cask:
 - checks required fields
 - checks URL responds successfully
 - checks content_length specified
2012-11-18 23:12:21 -06:00
phinze e2d074e216 separate Cask.all_titles from Cask.all 2012-11-18 23:11:22 -06:00
phinze 9e509d289b uninstall no longer depends uses homebrew
- should make tests a bit more reliable
2012-11-18 12:17:50 -06:00
phinze 3539767745 fix uninstall to work with multiple casks at once
homebrew does internal caching in ARGV that prevents us from doing the
`ARGV.clear; ARGV << 'newarg'` trick twice.

rather than try to further reach in to homebrew's innards, i figure it's
better to just pass multiple arguments down to homebrew code at once,
since it already supports that

refs #47
2012-10-20 13:34:11 -05:00
phinze ab57da07ea add brew cask uninstall
this delegates to homebrew's uninstall to get its work done. vanilla
`brew uninstall` actually works, but this gives us a more consistent
interface.

as discussed in #47
2012-10-20 13:01:41 -05:00
phinze c40dc63737 fix typo in Cask.init :(
💩 this is what i get for doing things outside of test coverage

added a smoke test this time
2012-10-15 19:25:35 -05:00
phinze 9b2f2c7ecd allow `brew cask linkapps` to accept arguments
arguments scope linkapps command to just those casks

also added unit tests around the CLI code - whee!
2012-10-15 18:45:55 -05:00
phinze 96cff81979 have linkapps recognizes apps in subdirs
should address #33

includes cleanup and tests

i'm not crazy about leaning on installing/uninstalling caffeine in the
tests. it makes for some unnecessarily heavy tests and downloads. but
i'd rather get tests in place first then fix the warts.
2012-10-15 18:28:36 -05:00
phinze 1a7e278935 a bona fide cask install test; and more splitting
I chose Caffeine since it's relatively small to download. Eventually I'd
like to switch this up so we bundle a dmg, zip, etc that the test suite
wires in to verify that we do the Right Thing (tm) with all those file
types. Probably will want to support `file://` URLs in Casks to help us
for that use case.
2012-10-13 16:48:25 -05:00
phinze a0434184b0 basic testing and separation of the Cask DSL 2012-10-13 16:30:59 -05:00
phinze f35cda322c add test coverage and start to split up cask.rb
ahhhhh the joys of refactoring under test coverage
2012-10-13 16:17:52 -05:00
phinze 550ea38adc mkdir HOMEBREW_CACHE to allow downloads in tests 2012-10-13 16:17:27 -05:00
phinze ab564ef254 handle multiple casks with install
should address #52

includes better error handling if a nonexistent cask is referenced

first test-driven commit, suckas!
2012-10-13 15:28:59 -05:00
phinze cd70474aa9 moving back from spec/ -> test/
since various tooling keeps guessing we're using rspec
2012-10-13 15:24:45 -05:00