import os
import random
import sys

chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'

def make_new_filename(length=8):
	new_filename = []
	for idx in xrange(length):
		new_filename.append(random.choice(chars))
	new_filename.extend(['.', 'j', 'p', 'g'])
	return ''.join(new_filename)

def main():
	""" This script is intended to rename .jpg files to a randomly selected
	8 character name.  It could easily be extended to deal with other types
	of files at some point.  

	USAGE:

	python pic_renamer.py <pictures_directory>
	"""

	if len(sys.argv) < 2:
		print 'ERROR: not enough arguments specified'
		return -1

	dir_path = sys.argv[1]

	for filename in os.listdir(dir_path):
		if filename.endswith('.jpg') or filename.endswith('.jpeg'):
			old_full_path = os.path.join(dir_path, filename)
			new_filename = make_new_filename()
			new_file_path = os.path.join(dir_path, new_filename)

			os.rename(old_full_path, new_file_path)

			print '{:s} - renaming - {:s}'.format(filename, new_filename)
		else:
			print '{:s} - skipping'.format(filename)

if __name__ == '__main__':
	sys.exit(main())
