RhetTbull / osxmetadata

Python package to read and write various MacOS extended attribute metadata such as tags/keywords and Finder comments from files. Includes CLI tool for reading/writing metadata.
MIT License
111 stars 2 forks source link

Example given in helptext `osxmetadata --set finderinfo color:2 file.ext` does not work (Unknown attribute: finderinfo) #105

Closed luckman212 closed 3 days ago

luckman212 commented 1 week ago

I was trying to set a color on a file using the example given in the help:

com.apple.FinderInfo (finderinfo) value is a key:value dictionary. To set
finderinfo, pass value in format key1:value1,key2:value2,etc. For example:
'osxmetadata --set finderinfo color:2 file.ext'.

But get this error

$ osxmetadata --set finderinfo color:2 /Users/luke/Downloads/foo.txt
Traceback (most recent call last):
  File "/Users/luke/.virtualenvs/bin/osxmetadata", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/osxmetadata/__main__.py", line 961, in cli
    process_files(
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/osxmetadata/__main__.py", line 1052, in process_files
    process_single_file(
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/osxmetadata/__main__.py", line 1104, in process_single_file
    if error := md_set_metadata_with_error(md, set_, verbose):
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/osxmetadata/__main__.py", line 301, in md_set_metadata_with_error
    attr = get_attribute_name(attr)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/luke/.virtualenvs/osxmetadata/lib/python3.12/site-packages/osxmetadata/__main__.py", line 117, in get_attribute_name
    raise ValueError(f"Unknown attribute: {attr}")
ValueError: Unknown attribute: finderinfo
RhetTbull commented 6 days ago

The help text is wrong, sorry about that. It used to work that way but now you can use findercolor:

osxmetadata --set findercolor 2 file.txt

I'll update the docs.

See this section of the README for more info.