Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

depends_on :cask problem with the onyx cask #8615

Closed
nicolas-brousse opened this issue Jan 3, 2015 · 5 comments · Fixed by #8618
Closed

depends_on :cask problem with the onyx cask #8615

nicolas-brousse opened this issue Jan 3, 2015 · 5 comments · Fixed by #8618

Comments

@nicolas-brousse
Copy link
Contributor

There is a problem with the onyx cask.

It appear the problem is on line 15 in /usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cask_dependencies.rb file.
deps return nil:NilClass.

Error: undefined method `each' for nil:NilClass

I have tried with this https://gist.github.com/nicolas-brousse/fb3edb9815a8ad03cf00 cask.

~ % brew cask install https://gist.githubusercontent.com/nicolas-brousse/fb3edb9815a8ad03cf00/raw/42b0f9b72e3d4472645f4942f4a35cfcc3f55e31/common-group.rb --debug
==> Creating directories
==> Loading Cask definitions
==> Translating 'https://gist.githubusercontent.com/nicolas-brousse/fb3edb9815a8ad03cf00/raw/42b0f9b72e3d4472645f4942f4a35cfcc3f55e31/common-group.rb' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Success! Using source class Hbc::Source::URI
==> Resolved Cask URI or file source to 'https://gist.githubusercontent.com/nicolas-brousse/fb3edb9815a8ad03cf00/raw/42b0f9b72e3d4472645f4942f4a35cfcc3f55e31/common-group.rb'
==> Downloading https://gist.githubusercontent.com/nicolas-brousse/fb3edb9815a8ad03cf00/raw/42b0f9b7
==> Download target -> /Library/Caches/Homebrew/Casks/common-group.rb
######################################################################## 100.0%
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixCommonGroup
sourcefile_path: !ruby/object:Pathname
  path: /Library/Caches/Homebrew/Casks/common-group.rb
token: common-group
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- 
...
==> Cask instance method 'url':
--- 
...
==> Cask instance method 'appcast':
--- 
...
==> Cask instance method 'version':
--- 
...
==> Cask instance method 'license':
--- 
...
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- 
...
==> Cask instance method 'artifacts':
--- {}
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':

---
:cask:
- google-chrome
- skype
- screenhero
- teamviewer
- synology-cloud-station
- alfred
- evernote
- vlc
- spotify
- onyx
- mou
- caffeine
- jumpcut
- flux
- adobe-reader
- gpgtools
- imageoptim
- imagealpha
- mysqlworkbench
- xmind
- balsamiq-mockups
- omnigraffle
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Hbc::Installer.install
==> Printing caveats
==> Satisfying dependencies
==> Installing Cask dependencies: google-chrome, skype, screenhero, teamviewer, synology-cloud-stati
==> Loading Cask definitions
==> Translating 'google-chrome' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/google-chrome.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixGoogleChrome
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/google-chrome.rb
token: google-chrome
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- https://www.google.com/chrome/
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTPS
  scheme: https
  user: 
  password: 
  host: dl.google.com
  port: 443
  path: /chrome/mac/stable/GGRO/googlechrome.dmg
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':
--- 
...
==> Cask instance method 'version':
--- :latest
...
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :gratis
==> Cask instance method 'tags':

---
:vendor: Google
==> Cask instance method 'sha256':
--- :no_check
...
==> Cask instance method 'artifacts':

---
:app: !ruby/object:Set
  hash:
    ? - Google Chrome.app
    : true
:zap: !ruby/object:Set
  hash:
    ? :delete:
      - ~/Library/Application Support/Google/Chrome
      - ~/Library/Caches/Google/Chrome
      - ~/Library/Caches/com.google.Chrome
      - ~/Library/Caches/com.google.Chrome.helper.EH
      - ~/Library/Caches/com.google.Keystone.Agent
      - ~/Library/Caches/com.google.SoftwareUpdate
      - ~/Library/Google/GoogleSoftwareUpdate
      - ~/Library/Logs/GoogleSoftwareUpdateAgent.log
      :rmdir:
      - ~/Library/Caches/Google
      - ~/Library/Google
    : true
==> Cask instance method 'caveats':

---
- - |+
    The Mac App Store version of 1Password won't work with a Homebrew-Cask-linked Google Chrome. To bypass this limitation, you need to either:

      + Move Google Chrome to your /Applications directory (the app itself, not a symlink).
      + Install 1Password from outside the Mac App Store (licenses should transfer automatically, but you should contact AgileBits about it).

==> Cask instance method 'depends_on':
--- 
...
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Loading Cask definitions
==> Translating 'skype' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/skype.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixSkype
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/skype.rb
token: skype
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- http://www.skype.com
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTPS
  scheme: https
  user: 
  password: 
  host: www.skype.com
  port: 443
  path: /go/getskype-macosx.dmg
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':
--- 
...
==> Cask instance method 'version':
--- :latest
...
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :gratis
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- :no_check
...
==> Cask instance method 'artifacts':

---
:app: !ruby/object:Set
  hash:
    ? - Skype.app
    : true
:zap: !ruby/object:Set
  hash:
    ? :delete: ~/Library/Application Support/Skype
    : true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
--- 
...
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Loading Cask definitions
==> Translating 'screenhero' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/screenhero.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixScreenhero
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/screenhero.rb
token: screenhero
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- http://screenhero.com
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTP
  scheme: http
  user: 
  password: 
  host: dl.screenhero.com
  port: 80
  path: /update/screenhero/Screenhero.dmg
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':

---
- !ruby/object:URI::HTTP
  scheme: http
  user: 
  password: 
  host: dl.screenhero.com
  port: 80
  path: /update/screenhero/sparkle.xml
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
- {}
==> Cask instance method 'version':
--- :latest
...
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :commercial
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- :no_check
...
==> Cask instance method 'artifacts':

---
:app: !ruby/object:Set
  hash:
    ? - Screenhero.app
    : true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
--- 
...
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Loading Cask definitions
==> Translating 'teamviewer' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/teamviewer.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixTeamviewer
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/teamviewer.rb
token: teamviewer
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- http://www.teamviewer.com/
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTPS
  scheme: https
  user: 
  password: 
  host: download.teamviewer.com
  port: 443
  path: /download/TeamViewer.dmg
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':
--- 
...
==> Cask instance method 'version':
--- :latest
...
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :unknown
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- :no_check
...
==> Cask instance method 'artifacts':

---
:pkg: !ruby/object:Set
  hash:
    ? - Install TeamViewer.pkg
    : true
:uninstall: !ruby/object:Set
  hash:
    ? :pkgutil: com.teamviewer.*
      :launchctl: com.teamviewer.service
      :delete: /Library/LaunchDaemons/com.teamviewer.teamviewer_service.plist
    : true
:zap: !ruby/object:Set
  hash:
    ? :delete:
      - ~/Library/Caches/com.teamviewer.TeamViewer
      - ~/Library/Logs/TeamViewer
    : true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
--- 
...
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Loading Cask definitions
==> Translating 'synology-cloud-station' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/synology-cloud-station.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixSynologyCloudStation
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/synology-cloud-station.rb
token: synology-cloud-station
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- http://www.synology.com/
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTPS
  scheme: https
  user: 
  password: 
  host: global.download.synology.com
  port: 443
  path: /download/Tools/CloudStation/3317/Mac/synology-cloud-station-3317.dmg
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':
--- 
...
==> Cask instance method 'version':
--- '3317'
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :unknown
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- d3305b5f2b4d47cf84e18cdbdb86a58578bff396fbe4664c4c778745098a362d
...
==> Cask instance method 'artifacts':

---
:pkg: !ruby/object:Set
  hash:
    ? - synology-cloud-station-3317.pkg
    : true
:uninstall: !ruby/object:Set
  hash:
    ? :pkgutil: com.synology.CloudStation
      :launchctl: com.synology.Synology Cloud Station
    : true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
--- 
...
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Loading Cask definitions
==> Translating 'alfred' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/alfred.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixAlfred
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/alfred.rb
token: alfred
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- http://www.alfredapp.com/
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTPS
  scheme: https
  user: 
  password: 
  host: cachefly.alfredapp.com
  port: 443
  path: /Alfred_2.5.1_308.zip
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':
--- 
...
==> Cask instance method 'version':
--- 2.5.1_308
...
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :commercial
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- 06e55eed65c3e09bffd385a11a695ebd7df79a5303690e9cb197a0b72782e2dc
...
==> Cask instance method 'artifacts':

---
:app: !ruby/object:Set
  hash:
    ? - Alfred 2.app
    : true
    ? - Alfred 2.app/Contents/Preferences/Alfred Preferences.app
    : true
:postflight: !ruby/object:Set
  hash:
    !ruby/object:Proc {}: true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
--- 
...
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Loading Cask definitions
==> Translating 'evernote' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/evernote.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixEvernote
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/evernote.rb
token: evernote
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- https://evernote.com/
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTPS
  scheme: https
  user: 
  password: 
  host: www.evernote.com
  port: 443
  path: /about/download/get.php
  query: file=EvernoteMac
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':

---
- !ruby/object:URI::HTTP
  scheme: http
  user: 
  password: 
  host: update.evernote.com
  port: 80
  path: /public/ENMac/EvernoteMacUpdate.xml
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
- {}
==> Cask instance method 'version':
--- :latest
...
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :gratis
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- :no_check
...
==> Cask instance method 'artifacts':

---
:app: !ruby/object:Set
  hash:
    ? - Evernote.app
    : true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
--- 
...
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Loading Cask definitions
==> Translating 'vlc' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/vlc.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixVlc
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/vlc.rb
token: vlc
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- http://www.videolan.org/vlc/
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTPS
  scheme: https
  user: 
  password: 
  host: get.videolan.org
  port: 443
  path: /vlc/2.1.5/macosx/vlc-2.1.5.dmg
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':

---
- !ruby/object:URI::HTTP
  scheme: http
  user: 
  password: 
  host: update.videolan.org
  port: 80
  path: /vlc/sparkle/vlc-intel64.xml
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
- :sha256: 358ea9032ef0df1658c062bfb11ca4336ebf662b64bffec8e059b1e2faa4f788
==> Cask instance method 'version':
--- 2.1.5
...
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :oss
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- 923504e296829f4253af8276b992636f72e56232ecdbdcf6003647ee662257f2
...
==> Cask instance method 'artifacts':

---
:app: !ruby/object:Set
  hash:
    ? - VLC.app
    : true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
--- 
...
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':

---
- !ruby/object:URI::HTTPS
  scheme: https
  user: 
  password: 
  host: get.videolan.org
  port: 443
  path: /vlc/2.1.5/macosx/vlc-2.1.5.dmg.asc
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
- :key_id: 65f7c6b4206bd057a7eb73787180713be58d1adc
==> Cask instance method 'accessibility_access':
--- 
...
==> Loading Cask definitions
==> Translating 'spotify' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/spotify.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixSpotify
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/spotify.rb
token: spotify
==> Cask instance method 'name':

---
- Spotify
==> Cask instance method 'homepage':
--- https://www.spotify.com
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTP
  scheme: http
  user: 
  password: 
  host: download.spotify.com
  port: 80
  path: /Spotify.dmg
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':
--- 
...
==> Cask instance method 'version':
--- :latest
...
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :gratis
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- :no_check
...
==> Cask instance method 'artifacts':

---
:app: !ruby/object:Set
  hash:
    ? - Spotify.app
    : true
:uninstall: !ruby/object:Set
  hash:
    ? :launchctl: com.spotify.webhelper
    : true
:zap: !ruby/object:Set
  hash:
    ? :delete:
      - ~/Library/Application Support/Spotify
      - ~/Library/Preferences/com.spotify.client.plist
      - ~/Library/Caches/com.spotify.client
      - ~/Library/Logs/Spotify
    : true
==> Cask instance method 'caveats':
--- []
==> Cask instance method 'depends_on':
--- 
...
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Loading Cask definitions
==> Translating 'onyx' into a valid Cask source
==> Testing source class Hbc::Source::URI
==> Testing source class Hbc::Source::PathSlashRequired
==> Testing source class Hbc::Source::TappedQualified
==> Testing source class Hbc::Source::UntappedQualified
==> Testing source class Hbc::Source::Tapped
==> Success! Using source class Hbc::Source::Tapped
==> Resolved Cask URI or file source to '/usr/local/Library/Taps/caskroom/homebrew-cask/Casks/onyx.rb'
==> Cask instance dumps in YAML:
==> Cask instance toplevel:
--- !ruby/object:KlassPrefixOnyx
sourcefile_path: !ruby/object:Pathname
  path: /usr/local/Library/Taps/caskroom/homebrew-cask/Casks/onyx.rb
token: onyx
==> Cask instance method 'name':
--- []
==> Cask instance method 'homepage':
--- http://www.titanium.free.fr/downloadonyx.php
...
==> Cask instance method 'url':
--- !ruby/object:Hbc::URL
uri: !ruby/object:URI::HTTP
  scheme: http
  user: 
  password: 
  host: www.titanium.free.fr
  port: 80
  path: /download/1010/OnyX.dmg
  query: 
  opaque: 
  registry: 
  fragment: 
  parser: 
user_agent: 
cookies: 
referer: 
using: 
revision: 
trust_cert: 
data: 
==> Cask instance method 'appcast':
--- 
...
==> Cask instance method 'version':
--- :latest
...
==> Cask instance method 'license':
--- !ruby/object:Hbc::DSL::License
value: :unknown
==> Cask instance method 'tags':
--- 
...
==> Cask instance method 'sha256':
--- :no_check
...
==> Cask instance method 'artifacts':

---
:app: !ruby/object:Set
  hash:
    ? - OnyX.app
    : true
==> Cask instance method 'caveats':

---
- !ruby/object:Hbc::Caveats
  block: !ruby/object:Proc {}
==> Cask instance method 'depends_on':

---
:macos:
- !ruby/object:Gem::Version
  version: '10.4'
- !ruby/object:Gem::Version
  version: '10.5'
- !ruby/object:Gem::Version
  version: '10.6'
- !ruby/object:Gem::Version
  version: '10.7'
- !ruby/object:Gem::Version
  version: '10.8'
- !ruby/object:Gem::Version
  version: '10.9'
- !ruby/object:Gem::Version
  version: '10.10'
==> Cask instance method 'conflicts_with':
--- 
...
==> Cask instance method 'container':
--- 
...
==> Cask instance method 'gpg':
--- 
...
==> Cask instance method 'accessibility_access':
--- 
...
==> Purging files for version  of Cask common-group
Error: undefined method `each' for nil:NilClass

  Most likely, this means you have an outdated version of homebrew-cask. Please run:

      brew update && brew upgrade brew-cask && brew cleanup && brew cask cleanup

  If this doesn’t fix the problem, please report this bug:

      https://github.com/caskroom/homebrew-cask/issues

/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cask_dependencies.rb:15:in `block in graph_dependencies'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cask_dependencies.rb:19:in `call'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cask_dependencies.rb:19:in `block (2 levels) in graph_dependencies'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cask_dependencies.rb:15:in `each'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cask_dependencies.rb:15:in `block in graph_dependencies'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cask_dependencies.rb:25:in `call'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cask_dependencies.rb:25:in `graph_dependencies'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cask_dependencies.rb:8:in `initialize'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/installer.rb:189:in `new'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/installer.rb:189:in `cask_dependencies'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/installer.rb:126:in `satisfy_dependencies'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/installer.rb:60:in `install'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cli/install.rb:20:in `block in install_casks'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cli/install.rb:17:in `each'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cli/install.rb:17:in `install_casks'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cli/install.rb:6:in `run'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cli.rb:79:in `run_command'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/hbc/cli.rb:119:in `process'
/usr/local/Cellar/brew-cask/0.52.0/rubylib/brew-cask-cmd.rb:18:in `<main>'
@jawshooah
Copy link
Contributor

Looks like you're missing a version stanza in your common-group Cask, which is required. There is talk of supporting "metacasks" such as this in the future (#8492), which would likely relax the version requirement and others. For now, just include a dummy value or :latest.

Edit: You also need to include dummy values for url and sha256. The url must point to a recognized container, and sha256 must match the downloaded file, so you could just use some small .zip download or other for the url and set sha256 to :no_check.

@tapeinosyne
Copy link
Contributor

Dependency-only Casks are not yet supported (officially), but the issue you encounter affects all dependencies with depends_on stanzas devoid of a :cask key-value. I will push a fix later.

Thanks for the report.

@vitorgalvao vitorgalvao added the bug Issue describing a reproducible bug. label Jan 3, 2015
@nicolas-brousse
Copy link
Contributor Author

@ncr-qef Okey.

When I have read the details of the latest release and the issue #8491 I thought that it was done for dependency-only cask.

Since last June I try to do it (#4973). And since, I follow what is new for each new release. I thought that with this release it start to be done.

So thank you for your future fix. I will appreciate this feature 😄.

@tapeinosyne
Copy link
Contributor

Truth be told, it is as you say, @nicolas-brousse! After #8491, the codebase contains everything necessary for dependency-only Casks. However, as @jawshooah mentioned, it also contains DSL-level checks which actively prevent you from using one such Cask.

Filtering out invalid Casks is important, and we cannot relax the DSL without due care. The required changes are not drastic — I hope we will have something working by the end of the month.

This issue is now closed, but the discussion around depends_on–only Casks continues in #2001, and you are welcome to comment there. Meanwhile, thanks for your patience.

@nicolas-brousse
Copy link
Contributor Author

Ok. I note what you said. And I totally understand.

There is very no emergency in my side. It's just I follow the feature in same time of the brew upgrade feature. Because I hope I'll can have a nice installation and workflow for my GUI as binary are with homebrew. And like I say in my comment in #4973 I'm thinking and looking for a team workflow, so I search something light and smart.
I know it existe some tools like Chef, but I found it to heavy for this kind of tasks.

I will check the issue #2001 and I think alose the #8492.
Thanks.

@miccal miccal removed the bug Issue describing a reproducible bug. label Dec 23, 2016
@Homebrew Homebrew locked and limited conversation to collaborators May 8, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants