#!/usr/bin/env python

import os
import sys
import time
import random
import logging

logging.basicConfig(
    level = logging.INFO,
    format = "%(asctime)s [%(levelname)-8s] %(message)s"
)

def randHex(bytes):
    return '%0x' % (random.getrandbits(bytes * 4))

if len(sys.argv) <= 1:
    logging.error("Missing target directory");
    sys.exit(1);

dst = sys.argv[1]
if not os.path.isdir(dst):
    logging.error("No such directory: %s", dst)
    sys.exit(1);

t_start = time.time()

logging.info("Creating 50k files in one directory...")
for i in xrange (0,50000):
    path = os.path.join(dst, "file-%05d" % i)
    f = open(path, "wb")
    f.write(randHex(40))
    f.close()

t_create = time.time()

logging.info("Reading 50k files...")
for i in xrange (0,50000):
    path = os.path.join(dst, "file-%05d" % i)
    f = open(path, "rb")
    f.read()
    f.close()

t_read = time.time()

logging.info("Deleting 50k files...")
for i in xrange (0,50000):
    path = os.path.join(dst, "file-%05d" % i)
    os.remove(path)

t_del = time.time()

logging.info("Creation took: %.2f seconds", t_create-t_start)
logging.info("Reading  took: %.2f seconds", t_read-t_create)
logging.info("Deleting took: %.2f seconds", t_del-t_read)