import os
import urllib
import urllib2
from HTMLParser import HTMLParser
import shutil
import tarfile
import zipfile
# Parse the Fusion directory page
class myHTMLParser(HTMLParser):
def __init__(self):
self.reset()
self.HTMLDATA = []
def handle_data(self, data):
if data.find("\n") == -1 :
if data[0].isdigit():
self.HTMLDATA.append(data)
def clean(self):
self.HTMLDATA = []
def main():
url = 'http://softwareupdate.vmware.com/cds/vmw-desktop/fusion/'
dir = os.path.dirname(os.path.abspath(__file__))
response = urllib2.urlopen(url)
html = response.read()
parser = myHTMLParser()
parser.feed(html)
url = url + parser.HTMLDATA[-1] + '/'
response = urllib2.urlopen(url)
html = response.read()
parser.clean()
parser.feed(html)
url = url + parser.HTMLDATA[-1] + '/packages/com.vmware.fusion.tools.darwin.zip.tar'
urllib.urlretrieve(url, 'tools/com.vmware.fusion.tools.darwin.zip.tar')
parser.clean()
tar = tarfile.open('tools/com.vmware.fusion.tools.darwin.zip.tar', 'r')
tar.extract('com.vmware.fusion.tools.darwin.zip', path='tools/')
zip = zipfile.ZipFile('tools/com.vmware.fusion.tools.darwin.zip', 'r')
zip.extract('payload/darwin.iso', path='tools/')
zip.extract('payload/darwin.iso.sig', path='tools/')
shutil.move(dir + '/tools/payload/darwin.iso', dir + '/tools/darwin.iso')
shutil.move(dir + '/tools/payload/darwin.iso.sig', dir + '/tools/darwin.iso.sig')
shutil.rmtree(dir + '/tools/payload', True)
os.remove(dir + '/tools/com.vmware.fusion.tools.darwin.zip.tar')
os.remove(dir + '/tools/com.vmware.fusion.tools.darwin.zip')
if __name__ == '__main__':
main()