1 from __future__ import absolute_import
2 __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AGPLv3 License"
10 from xml.etree import cElementTree as ElementTree
12 from xml.etree import ElementTree
14 from Cura.util import resources
16 def getVersion(getGitVersion = True):
17 gitPath = os.path.abspath(os.path.join(os.path.split(os.path.abspath(__file__))[0], "../.."))
18 if hasattr(sys, 'frozen'):
19 versionFile = os.path.normpath(os.path.join(resources.resourceBasePath, "version"))
21 versionFile = os.path.abspath(os.path.join(os.path.split(os.path.abspath(__file__))[0], "../version"))
25 gitProcess = subprocess.Popen(args = "git show -s --pretty=format:%H", shell = True, cwd = gitPath, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
26 (stdoutdata, stderrdata) = gitProcess.communicate()
28 if gitProcess.returncode == 0:
33 gitHeadFile = gitPath + "/.git/refs/heads/SteamEngine"
34 if os.path.isfile(gitHeadFile):
37 f = open(gitHeadFile, "r")
38 version = f.readline()
40 return version.strip()
41 if os.path.exists(versionFile):
42 f = open(versionFile, "r")
43 version = f.readline()
45 return version.strip()
46 versionFile = os.path.abspath(os.path.join(os.path.split(os.path.abspath(__file__))[0], "../../version"))
47 if os.path.exists(versionFile):
48 f = open(versionFile, "r")
49 version = f.readline()
51 return version.strip()
55 gitPath = os.path.abspath(os.path.join(os.path.split(os.path.abspath(__file__))[0], "../../.git"))
56 return os.path.exists(gitPath)
58 def checkForNewerVersion():
62 updateBaseURL = 'http://software.ultimaker.com'
63 localVersion = map(int, getVersion(False).split('.'))
64 while len(localVersion) < 3:
66 latestFile = urllib2.urlopen("%s/latest.xml" % (updateBaseURL))
67 latestXml = latestFile.read()
69 xmlTree = ElementTree.fromstring(latestXml)
70 for release in xmlTree.iter('release'):
71 os = str(release.attrib['os'])
72 version = [int(release.attrib['major']), int(release.attrib['minor']), int(release.attrib['revision'])]
73 filename = release.find("filename").text
74 if platform.system() == os:
75 if version > localVersion:
76 return "%s/current/%s" % (updateBaseURL, filename)
82 if __name__ == '__main__':