#!/usr/bin/env python

import sys
import os
import fnmatch
import re

if len(sys.argv) == 2:
	cd32SkivaPath = sys.argv[1]
else: 
	raise SystemExit("Usage: " + sys.argv[0].rsplit("/", 1)[-1] + " CD32SkivaPath")

class Entry:
	def __init__(self, title, path, commandLine):
		self.title = title
		self.path = path
		self.commandLine = commandLine
	
	def __str__(self):
		return self.title + " " + self.path + " " + self.commandLine
	def __repr__(self):
		return self.__str__()

entries = {}

for rootPath, dirNames, fileNames in os.walk(cd32SkivaPath):
	for slaveFileName in fnmatch.filter(fileNames, "*.slave"):
		#entries.append(Entry(slave
		slaveName = slaveFileName.rsplit(".", 1)[0]
		# Separate the name on camel case to create the title 
		title = " ".join(re.findall('[A-Z][^A-Z]*', slaveName))
		if "" == title:
			title = slaveName
		commandLine = "WHDLoadCD32 " + slaveFileName + "Data=Data Preload"
		entries[title] = Entry(title, ":" + rootPath.split("/", 1)[-1], commandLine)


for title in sorted(entries):
	entry = entries[title]
	print '\t{'
	print '\t\t"' + entry.title + '",'
	print '\t\t"' + entry.path + '",'
	print '\t\t"' + entry.commandLine + '"'
	print '\t},'
