#!/usr/bin/env python3 """ Generate files for tests. """ import argparse from datetime import date, timedelta from pathlib import Path import os DEFAULT_NUMBER_OF_FILES = 200 DEFAULT_PREFIX = "testfile-" DEFAULT_SUFFIX = ".bak" DEFAULT_TIMESTAMP_FORMAT = "%Y%m%d" # Argument parser parser = argparse.ArgumentParser( description="Cleanup old backups", epilog="For a complete timestamp format description, see the python strftime() " + "documentation: https://docs.python.org/3/library/datetime.html" + "#strftime-strptime-behavior" ) # path argument parser.add_argument( "path", metavar="PATH", type=str, nargs=1, help="directory path" ) # number of files parser.add_argument( "-n", "--number-of-files", type=int, default=DEFAULT_NUMBER_OF_FILES, metavar="N", help=f"generate N files, default: {DEFAULT_NUMBER_OF_FILES}" ) # prefix argument parser.add_argument( "-p", "--prefix", type=str, default=DEFAULT_PREFIX, metavar="PREFIX", help=f"use PREFIX as file name prefix, default: {DEFAULT_PREFIX}" ) # suffix argument parser.add_argument( "-s", "--suffix", type=str, default=DEFAULT_SUFFIX, metavar="SUFFIX", help=f"use SUFFIX as file name suffix, default: {DEFAULT_SUFFIX}" ) # timestamp format parser.add_argument( "-t", "--timestamp-format", type=str, default=DEFAULT_TIMESTAMP_FORMAT, metavar="FORMAT", help=f"format of timestamp, default: {DEFAULT_TIMESTAMP_FORMAT}".replace(r"%", r"%%") ) args = parser.parse_args() path = args.path[0] number_of_files = args.number_of_files prefix = args.prefix suffix = args.suffix timestamp_format = args.timestamp_format for i in range(number_of_files): timestamp = (date.today() - timedelta(days=i)).strftime(timestamp_format) filename = f"{prefix}{timestamp}{suffix}" Path(os.path.join(path, filename)).touch()