Source code for filerecords.cli.comment

"""
The `records comment` command can be used to add a comment to a specific file or the registry itself.

Usage
-----

    >>> records comment [-c <comment>] [-f <flags>] <filename>

    where ``<filename>`` is the path to the file to comment. If left blank the comment is added to the registry itself.
    ``-c <comment>``, adds a comment or description message.  ``-f <flags>``, adds any number of flags. These can include defined flag group labels.
"""


[docs]def setup( parent ): """ Set up the CLI """ descr = "Add comments to files or the registry itself." parser = parent.add_parser( "comment", description = descr, help = descr ) parser.add_argument( "filename", nargs = "?", help = "The file to comment. If left blank the comments are applied to the registry itself", default = None ) parser.add_argument( "-c", "--comment", help = "Add a comment or description.", default = None ) parser.add_argument( "-f", "--flags", help = "Add flags.", nargs="+", default = None ) parser.set_defaults( func = comment )
[docs]def comment( args ): """ The core function to add comments. """ import filerecords.api as api # from filerecords.api.utils import log # logger = log() reg = api.Registry( "." ) # # the add and update functions are expecting to find a string # # if noly one value is present... # if args.flags and len(args.flags) == 1: # args.flags = args.flags[0] if not args.filename: if args.comment: reg.add_comment( args.comment ) if args.flags: reg.add_flags( args.flags ) reg.save() else: record = reg.get_record( args.filename ) if record is None: reg.add( args.filename, comment = args.comment, flags = args.flags ) # logger.info( f"Added {args.filename} to the registry." ) print( f"Added {args.filename} to the registry." ) else: reg.update( args.filename, comment = args.comment, flags = args.flags ) # logger.info( f"Updated {args.filename}'s records." ) print( f"Updated {args.filename}'s records." )