diff --git a/filename2mtime.py b/filename2mtime.py new file mode 100755 index 0000000..c4317c2 --- /dev/null +++ b/filename2mtime.py @@ -0,0 +1,72 @@ +#!/usr/bin/python3 + +""" +This helper script is able to extract a date and time from the name of all files in a directory and set their respective UNIX mtime (the modified timestamp). +Copyright (C) 2024 Benjamin Burkhardt + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +""" +Useful links: +- https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior +- https://www.datacamp.com/tutorial/converting-strings-datetime-objects +- https://scrapfly.io/blog/parsing-datetime-strings-with-python-and-dateparser/ +- https://stackoverflow.com/questions/466345/convert-string-jun-1-2005-133pm-into-datetime +""" + + +from datetime import datetime +from argparse import ArgumentParser, RawTextHelpFormatter +import os + +# define some shell color codes +class COLORS: + HEADER = '\033[95m' + OKBLUE = '\033[94m' + OKCYAN = '\033[96m' + OKGREEN = '\033[92m' + WARNING = '\033[93m' + FAIL = '\033[91m' + ENDC = '\033[0m' + BOLD = '\033[1m' + UNDERLINE = '\033[4m' + +# set up the ArgumentParser for the CLI +parser = ArgumentParser( + description='filename2mtime.py Copyright (C) 2024 Benjamin Burkhardt\r\n' + 'This program comes with ABSOLUTELY NO WARRANTY and is licensed under the ' + 'GNU General Public License 3.\r\n' + 'You should have received a copy of the GNU General Public License\r\n' + 'along with this program. If not, see .\r\n' + '\r\n' + 'This helper script is able to extract a date and time from the name of all \r\n' + 'files in a directory and set their respective UNIX mtime (the modified timestamp).\r\n' + 'BE AWARE THAT ALL CHANGES TO THE FILES CANNOT BE UNDONE! USE AT YOUR OWN RISK!', + epilog='by Benjamin Burkhardt, 2024', + add_help=False, + formatter_class=RawTextHelpFormatter) + +parser.add_argument('-v', '--verbose', action='store_true', help='enable verbose output') # on/off flag +parser.add_argument('--help', action='store_true', help='display this help message and exit') # on/off flag + + +# parse given arguments +args = parser.parse_args() + +# print help and exit if prompted to +if args.help: + parser.print_help() + exit(0) +