def main():
	if len(sys.argv) != 2:
		sys.stderr.write("Usage: wf_calendar_sync.py [YAML file]\n")
		exit(1)

	sys.stdout.write("(c) 2011 Jonas Gulle <*****@*****.**>\n\n")
	sys.stdout.write("Enter your Google Account credentials.\n")

	from getpass import getpass
	while True:
		try:
			username = raw_input(" Username: "******" Password: "******"%s\n" % e)

	calendars = calendar.get_calendars()
	sys.stdout.write("\nYour calendars:\n");
	for i, c in enumerate(calendars):
		sys.stdout.write(" %d: %s\n" % (i + 1, c["name"]))

	while True:
		try:
			i = int(raw_input("Select calendar: ")) - 1
			if i < 0:
				raise IndexError
			calendar.insert_uri = calendars[i]["insert_uri"]
			break
		except (IndexError, ValueError):
			sys.stderr.write("No such calendar exist\n")

	with open(sys.argv[1]) as f:
		doc = yaml.load(f.read())

	sys.stdout.write("\nCreating events, please wait.")
	for event in doc["Calendar"]:
		from datetime import timedelta
		start = event["Date"]
		# Default to 3 hours if length is omitted
		end = start + timedelta(hours=3)
		if event.has_key("Length"):
			end = start + timedelta(hours=int(event["Length"]))

		# Grab the first line as the title
		title = event["Event"].partition("\n")[0]

		def dress_str(s):
			try:
				return {u"MK": u"Mörk kostym", u"HD": u"Högtidsdräkt"}[s]
			except KeyError:
				return s

		content = u""
		if event.has_key("Dress code"):
			content = u"%s\n\nKlädkod: %s" % (event["Event"], dress_str(event["Dress code"]))
		else:
			content = event["Event"]

		calendar.insert_event(
			title,
			content,
			start_time=start.isoformat(),
			end_time=end.isoformat()
		)

		sys.stdout.write(".")

	sys.stdout.write("\nDone!\n")