#!/usr/bin/env python

# Spirit
# Copyright Ruby Dos Zapatas 2004
# Richard releases this file under the 
# GNU GPL license. See COPYING.
#
# created: 13 Jun 04
#
import os, string, sys
from ruby2shoes import *

class Spirit:

	def __init__(self):
		self.consts = SpiritConsts()
		self.lib = SpiritCommon()
		self.params = []
		self.options = []
		val = 0
		args = sys.argv
		for i in range(1, len(args)):
			arg = args[i]
			if (string.find(arg,'--') == 0):
				self.options.append(string.replace(arg,'--',''))
				if (arg[-1] == ':'):
					val = 1
			elif ((string.find(arg,'-') == 0) and
				  (string.rfind(arg,'-') != 1)):
				for j in range(1,len(arg)):
					self.options.append(arg[j])
			elif (val):
				self.options.append(arg)
				val = 0
			elif (arg != ''):
				self.params.append(arg)
		self.debug = ("debug" in self.params) or self.consts.DEBUG
		if (self.debug):
			print self.params
			print self.options
		return

	def run(self):
		if (self.options[0] == 'a'):
			self.lib.rm_tmpdir()
			archiver = SpiritArchive(self.debug, self.lib, self.consts)
			archiver.service(self.params, self.options)
		elif (self.options[0] == 'c'):
			converter = SpiritConvert(self.debug, self.lib, self.consts)
			converter.service(self.params, self.options)
		elif (self.options[0] == 'p'):
			printer = SpiritPrint(self.debug, self.lib, self.consts)
			printer.service(self.params, self.options)
		elif (self.options[0] == "x"):
			self.lib.rm_tmpdir()
		else:
			usage()
		return

	def usage(self):
		print "\nSpirit"
		print "  Archive"
		print "    Spirit -az name = zip numbered archive of *name*"
		print "    Spirit -au name n = unzip name.n.zip in pwd"
		print "    Spirit -ap name = put archive of *name* to remote"
		print "    Spirit -ag name = get archive of *name* from remote"
		print "  Print"
		print "    Spirit -pd name = convert name.sp|fc to dvi"
		print "    Spirit -p8 name = 8pt draft dvi"
		print "    Spirit -pb name = 8pt draft print-block dvi"
		print "    Spirit -pa name = if dvi, print all pages"
		print "    Spirit -p2 name = if dvi, print all pages, odd out and even back"
		print "    Spirit -pp name n,m,r-s = if dvi, print selected pages"
		print "  Convert"
		print "    Spirit -ch name = converts name to html"
		print "    Spirit -ct name = converts name to text"
		print "    Spirit -cp name = converts name to CafePress.com pdf"
		print "  Clean-up"
		print "    Spirit -x = clean up all temporary files"
		print "Ruby Dos Zapatas (C) 2004 ruby2shoes\n"

obj = Spirit()
if ("-?" in sys.argv) or (len(sys.argv) == 1):
	obj.usage()
else:
	obj.run()
