from time import sleep
import clr
clr.AddReference("System")
import System.Diagnostics
from System.Diagnostics import Process
import os, sys

def ipyRunSikuli(scriptName):   
    
    '''Becasue the select module is not available, you can't use the subprocess
       module in IronPython. Use System.Diagnostics.Process instead.
       This function runs the given sikuli script'''
    
    cwd_is = os.getcwd()
    #print >> sys.stdout, "cwd:", cwd_is
    
    arg_file = cwd_is + "\%s.sikuli" % scriptName
    #need double quotes around finalname
    arg_file = "\"" + arg_file + "\""
   
    # Get path for sikuli - as per  64 bits or 32 bit machine
    win64 = os.path.exists("C:\Program Files (x86)")  #will return True or false
    # for sikuli RC2 
    if win64:
        file_name = 'java -jar "C:\Program Files (x86)\Sikuli X\sikuli-script.jar" '
        #file_name = "C:\Program Files (x86)\Sikuli X\sikuli-IDE.exe"
    else:
        file_name = 'java -jar "C:\Program Files\Sikuli X\sikuli-script.jar" ' 
    file_name = "\"" + file_name + "\""
    try:
        p = Process()
        p.StartInfo.UseShellExecute = True
        p.StartInfo.RedirectStandardOutput = False
        p.StartInfo.FileName = file_name
        print p.StartInfo.FileName
        p.StartInfo.Arguments = arg_file
        print p.StartInfo.Arguments
        p.StartInfo.WorkingDirectory = cwd_is
        p.Start()
        p.WaitForExit()
        print 'INFO: Run Sikuli Succeeded'
        return 0
    except Exception, e:
        print "FAIL: Run Sikuli threw an exception %s" % str(e)
        raise  
    
if __name__ == '__main__':
	from time import sleep
	
	ipyRunSikuli("findSMARTInkToolbars")
