def download_eclipse():
    eclipse_download_page_url = "https://www.eclipse.org/downloads/"
    print "Hitting Eclipse download page: " + eclipse_download_page_url
    # Find the appropriate download
    current_os = platform.system().lower()
    if "win" in current_os:
        if setup_core.is_64bit():
            xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[2]/ul/li[3]/a'
        else:
            xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[2]/ul/li[2]/a'
    elif "linux" in current_os:
        if setup_core.is_64bit():
            xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[3]/ul/li[3]/a'
        else:
            xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[3]/ul/li[2]/a'
    elif "osx" in current_os:
        xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[1]/ul/li[2]/a'
    xpath += '/@href'
    eclipse_page_tree = html.fromstring(requests.get(eclipse_download_page_url).content)
    secondary_page = eclipse_download_page_url + eclipse_page_tree.xpath(xpath)[0]
    print "".join(["Following to: ", secondary_page])
    eclipse_page_tree = html.fromstring(requests.get(secondary_page).content)
    # We have to traverse yet another page before being presented with a download url
    secondary_page = eclipse_page_tree.xpath('//*[@id="novaContent"]/div[1]/div/div[1]/div[1]/p[1]/a/@href')[0]
    eclipse_page_tree = html.fromstring(requests.get(eclipse_download_page_url + secondary_page).content)
    href_ = eclipse_page_tree.xpath('//*[@id="novaContent"]/div/div/div/span/p/a/@href')[0]
    eclipse_zip_file = setup_core.download_file(href_)
    return eclipse_zip_file
def download_plugin():
    plugin_download_page_url = "http://jmeter-plugins.org"
    print "Hitting JMeter Plugin download page: " + plugin_download_page_url
    plugin_page_tree = html.fromstring(requests.get(plugin_download_page_url).content)
    plugin_download_link = "".join(
        [plugin_download_page_url, plugin_page_tree.xpath('/html/body/div/div/div[1]/a[1]/@href')[0]])
    zip_file = setup_core.download_file(plugin_download_link)
    print zip_file + " was downloaded"
    return zip_file
def download_jmeter():
    jmeter_download_page_url = "http://jmeter.apache.org/download_jmeter.cgi"
    print "Hitting JMeter download page: " + jmeter_download_page_url
    jmeter_page_tree = html.fromstring(requests.get(jmeter_download_page_url).content)
    jmeter_page_links = jmeter_page_tree.xpath('//a/@href')
    jmeter_tar_file_url = filter(lambda x: x.endswith(".tgz") and not "src" in x, jmeter_page_links)[0]
    jmeter_tar_md5_url = filter(lambda x: x.endswith(".tgz.md5") and not "src" in x, jmeter_page_links)[0]
    jmeter_md5_string = requests.get(jmeter_tar_md5_url).text.split(" ")[0]
    tar_file = setup_core.download_file(jmeter_tar_file_url, jmeter_md5_string)
    print tar_file + " was downloaded with correct MD5"
    return tar_file