75 lines
1.9 KiB
Python
Executable File
75 lines
1.9 KiB
Python
Executable File
#!/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()
|
|
|