chiark / gitweb /
New MacOS script, will be the base for a .app
authorbartbakk <bartbakk@rozmac.local>
Thu, 11 Oct 2012 15:00:29 +0000 (17:00 +0200)
committerbartbakk <bartbakk@rozmac.local>
Thu, 11 Oct 2012 15:00:29 +0000 (17:00 +0200)
Cura/gui/printWindow.py
scripts/osx64/cura.command

index 8123e611b51296ffb7cb2b5c11a2196b65849aa6..1f5dcf51916d3c0d69b6115b60c5837091d4b211 100644 (file)
@@ -1,7 +1,7 @@
 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
@@ -38,8 +38,14 @@ class printProcessMonitor():
                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
@@ -51,7 +57,7 @@ class printProcessMonitor():
                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
index f594f3bdc8b92520e3546ebf00d7529076539708..a967e82e78236d4d9c2e5f51f1193ef6690e1884 100755 (executable)
@@ -1,33 +1,97 @@
-#!/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