-
-
Notifications
You must be signed in to change notification settings - Fork 10.7k
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
Store metadata with installed Casks. #3066
Conversation
@@ -3,6 +3,11 @@ def destination_path | |||
caskroom_path.children.first | |||
end | |||
|
|||
def initialize(sourcefile_path=nil) | |||
@sourcefile_path = sourcefile_path | |||
@title = sourcefile_path |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not @title = self.class.title
like in cask.rb
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
?
Storing metadata is very desirable for the |
3e98ff7
to
2da18e0
Compare
881bf73
to
3e281e2
Compare
3e281e2
to
2ac95f4
Compare
Step 2: Snapshot the Cask file used at install-time, using the previously-merged metadata directory support. Using a simple filesystem-is-a-database approach, we set up a `.metadata` directory for each installed Cask in which we can record any information, starting with a copy of the Cask definition which was used at install-time. This should be useful for various cases such as: - a fallback when the Cask was renamed/removed. We currently cannot recover any uninstall info in that scenario - installation of multiple versions of the same software There might be a smarter way to discover the source filename for the Cask through introspection or some deep Ruby voodoo. All I could come up with was to pass the filename in on the constructor, which seems perfectly reasonable if voodoo is not available. The existing code was taking the title as an argument to the constructor, which is dispensable. This PR contains no code to actually make use of the metadata, but only takes care of the relevant book-keeping: creation, destruction, as well as organization of metadata according to software version number and timestamp.
2ac95f4
to
bf99c6b
Compare
Store metadata with installed Casks.
Step 1: Snapshot the Cask file used at install-time.
Using a simple filesystem-is-a-database approach, set up a
.metadata
directory for each installed Cask in which we canrecord any information, starting with a copy of the Cask
definition which was used at install-time.
This should be useful for various cases such as:
There might be a smarter way to discover the source filename
for the Cask through introspection or some deep Ruby voodoo.
All I could come up with was to pass the filename in on the
constructor, which seems perfectly reasonable if voodoo is
not available. The existing code was taking the title as an
argument to the constructor, which is dispensable.
This PR contains no code to actually make use of the metadata,
but only takes care of the relevant book-keeping: creation,
destruction, as well as organization of metadata according to
software version number and timestamp.