-
-
Notifications
You must be signed in to change notification settings - Fork 10.8k
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
Cask groups #4973
Comments
In practice, the Caskfile should satisfy this use case rather well. Do Caskfiles fall short of what you had in mind? Perhaps our docs are unclear about their availability or purpose? |
Hi @nicolas-brousse ! Someone should submit a patch to the Homebrew project such that |
I know My idea is not to have a simple list of cask but it's subscribe to a group and if this group is modified when you I try to describe a more speaking example. Example So I have a company and I decide to create to groups of casks. On for developer, one for designers and one for common tools. # developer.rb
class Developer < CaskGroup
app 'atom'
app 'sequel-pro'
end
# designer.rb
class Designer < CaskGroup
app 'adobe-creative-cloud'
app 'imageoptim'
end
# common.rb
class Common < CaskGroup
app 'google-chrome'
end Developers can install Now I decide to update class Common < CaskGroup
app 'google-chrome'
+ app 'alfred'
+ app 'evernote'
end After I ask team to I think and I hope that it is a better explanation :) |
When we say tap homebrew/versions
install gcc
install flac
install fish
... # etc Essentially, its a list of Fortunately, Cask is an extension of Homebrew. So, we can specify similar functionality to handle apps: tap caskroom/cask
cask install google-chrome
cask install alfred
cask install evernote
... # etc We can make as many such files with different contents as desired and point to it with $ brew bundle /path/to/my/file or $ brew bundle # automatically looks for ./Brewfile in the current directory |
Thanks @rolandwalker and @alebcay for your answers. So if I try to convert my proposal with Brewfile. That gives something like that?
I'm agree it's good for a first installation. |
You can upgrade a regular Homebrew formula with
in the file. Currently, Cask has no option to upgrade Casks (it's actively being worked on though). Therefore, the only option is to reinstall. Normally, Cask won't reinstall over a Cask that is already installed. We can get around that by using the
etc. If you want to add a Cask, say Evernote, simply append the line, and the file is now:
Then simply run |
A simple solution could be to For example, a dev workstation would use the following Caskfile: # Meta-Caskfile
update # update to latest cask definitions
cask upgrade # upgrades currently installed casks
# Bundle actual Caskfiles from company- or group-wide upstream
bundle /intranet/[…]/Caskfile-common # skips installed casks, installs missing ones
bundle /intranet/[…]/Caskfile-dev # as above |
@ndr-qef your method seems much more reasonable than mine. I forgot that not using |
@nicolas-brousse, I see. You want integration with You will see back in #2001 I mention that "hard" dependencies between Casks are very few, and that the main use-case of such a feature would be meta-packages, which is what you are describing. We did implement dependencies on Homebrew Formulae in #2305. Though nobody has implemented intra-Cask dependencies yet, we plan to, as mentioned in HACKING.md, and we recently stubbed out the necessary extension to the Cask DSL in pending PR #4896 here: https://github.com/caskroom/homebrew-cask/pull/4896/files#diff-ea6b3e6aa990eabf846e14be8329e9dcR5 The way the interface would work is, you could create ordinary (but empty) Cask files that defined your grouping via dependencies: class DevelGroup < Cask
depends_on :cask => 'google-chrome'
depends_on :cask => 'alfred'
...
end And you could serve them from private taps as described in ALTERNATE_CASK_TAPS.md. So, this functionality is planned. How quickly it comes depends on whether someone volunteers to implement dependencies, once the |
Thanks @rolandwalker for your answer. I think that it answers well my proposal of CaskGroup :) I currently use I would like to help you to implement dependencies but I don't have the level in ruby programming :( |
@nicolas-brousse we are pleased to have your input here, in what ever form it may take. Caskfiles can be made to work, for now, for most people, with some compromises. I intend to close this proposal as a duplicate of #2001. This issue is now referenced there, so others will be able to find this informative discussion. Further comments are very welcome at #2001, as are patches to the documentation expanding on the use of Caskfiles. |
Okey :) |
Hi everybody,
I've an idea for a futur release. I think groups of cask can be interesting for companies.
For example, install group of apps for web developers or mobile developers:
brew cask install group company/developers
EDIT:
Companies could create their own groups with a remote repository. Like "taps" with homebrew.
The text was updated successfully, but these errors were encountered: