from __future__ import absolute_import\r
import __init__\r
\r
-import wx, threading, re, subprocess, sys, os, time\r
+import wx, threading, re, subprocess, sys, os, time, platform\r
from wx.lib import buttons\r
\r
from gui import icon\r
self.handle = None\r
\r
def loadFile(self, filename):\r
- if self.handle == None:\r
- self.handle = subprocess.Popen([sys.executable, sys.argv[0], '-r', filename], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)\r
+ if self.handle == None:
+ cmdList = [sys.executable, sys.argv[0], '-r', filename]
+ if platform.system() == "Darwin":
+ if platform.machine() == 'i386':
+ cmdList.insert(0, 'arch')
+ cmdList.insert(1, '-i386')
+ print cmdList
+ self.handle = subprocess.Popen(cmdList, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
self.thread = threading.Thread(target=self.Monitor)\r
self.thread.start()\r
else:\r
while(len(line) > 0):\r
#print line.rstrip()\r
line = p.stdout.readline()\r
- p.wait()\r
+ p.communicate()\r
self.handle = None\r
self.thread = None\r
\r
-#!/bin/bash
+#!/bin/sh
-python2.7 -c ''
+SCRIPTDIR=`dirname "$0"`
+RESDIR=${SCRIPTDIR}/../Resources/
+
+#run the path_helper to set the $PATH for accessing python
+if [ -x /usr/libexec/path_helper ]; then
+ eval `/usr/libexec/path_helper -s`
+fi
+
+displayMessage()
+{
+ /usr/bin/osascript > /dev/null <<-EOF
+tell application "System Events"
+ activate
+ display dialog "$@" buttons {"Ok"}
+end tell
+EOF
+}
+
+#Testing for python2.7, which we need and is not always installed on MacOS 1.6
+PY="python2.7"
+$PY -c ''
+if [ $? != 0 ]; then
+ displayMessage "Python 2.7 is missing from your system. Cura requires Python2.7.\nStarting the installer" $PATH
+ #TODO: Install python2.7
+ $PY -c ''
+ if [ $? != 0 ]; then
+ displayMessage "Failed to install python2.7"
+ exit 1
+ fi
+fi
+
+#Next check for numpy, numpy does not always run under 64bit, so we need to check if we need to use "arch -i386"
+$PY -c 'import numpy' 2> /dev/null
if [ $? != 0 ]; then
- echo "Requires python2.7"
- echo " Install python2.7"
- exit 1
+ PY="arch -i386 python2.7"
+ $PY -c 'import numpy'
+ if [ $? != 0 ]; then
+ displayMessage "Numpy is missing from your system, this is required.\nStarting the installer"
+ #TODO: Install numpy
+
+ #After installing numpy, we need to check if we need to use arch -386 again
+ PY="python2.7"
+ $PY -c 'import numpy'
+ if [ $? != 0 ]; then
+ PY="arch -i386 python2.7"
+ $PY -c 'import numpy'
+ if [ $? != 0 ]; then
+ displayMessage "Failed to install numpy."
+ exit 1
+ fi
+ fi
+ fi
fi
-python2.7 -c 'import OpenGL'
+#Check for wxPython
+$PY -c 'import wx'
if [ $? != 0 ]; then
- echo "Requires PyOpenGL"
- echo " sudo easy_install PyOpenGL"
- exit 1
+ displayMessage "wxPython is missing from your system. Cura requires wxPython.\nStarting the installer"
+ #TODO: Start wxPython installer
+ $PY -c 'import wx'
+ if [ $? != 0 ]; then
+ displayMessage "Failed to properly install wxPython."
+ exit 1
+ fi
fi
-python2.7 -c 'import wx'
+#Check for PyOpenGL
+$PY -c 'import OpenGL'
if [ $? != 0 ]; then
- echo "Requires wx. Download and install (the Cocoa/64-bit variant) from:"
- echo " http://www.wxpython.org/download.php"
- exit 1
+ displayMessage "PyOpenGL is missing from your system. Cura requires PyOpenGL.\nStarting installation"
+ #TODO: Install PyOpenGL
+ $PY -c 'import OpenGL'
+ if [ $? != 0 ]; then
+ displayMessage "Failed to properly install PyOpenGL."
+ exit 1
+ fi
fi
-python2.7 -c 'import serial'
+#Check for pyserial
+$PY -c 'import serial'
if [ $? != 0 ]; then
- echo "Requires pyserial."
- echo " sudo easy_install pyserial"
- exit 1
+ displayMessage "PySerial is missing from your system. Cura requires PySerial.\nStarting installation"
+ #TODO: Install PySerial
+ $PY -c 'import serial'
+ if [ $? != 0 ]; then
+ displayMessage "Failed to properly install PySerial."
+ exit 1
+ fi
fi
-SCRIPT_DIR=`dirname $0`
-python ${SCRIPT_DIR}/Cura/cura.py $@
+#All checks passed, start Cura
+$PY "${RESDIR}Cura/cura.py" &
+sleep 1
+exit 0