sys.exit(1) else: # Remove any drafts to clean broken uploads print('Uploading release, please wait, this might take a while!') # Upload the latest browser bundles to a new release release = upload_new_release(target_repo, version, tb_path) # Upload success, publish the release release.edit(draft=False) # Create the links file for this release core = gettor.core.Core(os.path.abspath('../core.cfg')) # Erase old links if any and create a new empty one core.create_links_file('GitHub', readable_fp) print("Creating links file") for asset in release.assets: url = asset.browser_download_url if url.endswith('.asc'): continue osys, arch, lc = get_bundle_info(asset.name) sha256 = get_file_sha256( os.path.abspath(os.path.join(tb_path, asset.name)) ) link = "{}${}${}$".format(url, url + ".asc", sha256) print("Adding {}".format(url))
gpg = gnupg.GPG() key_data = open(tbb_key).read() import_result = gpg.import_keys(key_data) fp = import_result.results[0]['fingerprint'] # make groups of four characters to make fingerprint more readable # e.g. 123A 456B 789C 012D 345E 678F 901G 234H 567I 890J readable = ' '.join(fp[i:i+4] for i in xrange(0, len(fp), 4)) try: uploaded_files = upload_files(upload_dir, client) # use default config core = gettor.core.Core('/home/gettor/core.cfg') # erase old links core.create_links_file('Dropbox', readable) # recognize file OS by its extension p1 = re.compile('.*\.tar.xz$') p2 = re.compile('.*\.exe$') p3 = re.compile('.*\.dmg$') for file in uploaded_files: # build file names asc = "%s.asc" % file abs_file = os.path.abspath(os.path.join(upload_dir, file)) abs_asc = os.path.abspath(os.path.join(upload_dir, asc)) sha_file = get_file_sha256(abs_file) # build links
readable = ' '.join(fp[i:i + 4] for i in xrange(0, len(fp), 4)) try: # helpful when something fails but files are uploaded. if args.links: uploaded_files = get_files_links(drive_service, args.links) if not uploaded_files: raise ValueError("There are no files for that version") else: uploaded_files = upload_files(drive_service, upload_dir) # use default config core = gettor.core.Core('/home/gettor/core.cfg') # erase old links core.create_links_file('Drive', readable) # recognize file OS by its extension p1 = re.compile('.*\.tar.xz$') p2 = re.compile('.*\.exe$') p3 = re.compile('.*\.dmg$') p4 = re.compile('.*\.asc$') for file in uploaded_files.keys(): # only run for tor browser installers if p4.match(file): continue asc = "%s.asc" % file abs_file = os.path.abspath(os.path.join(upload_dir, file)) abs_asc = os.path.abspath(os.path.join(upload_dir, asc))
sys.exit(1) else: # Remove any drafts to clean broken uploads print('Uploading release, please wait, this might take a while!') # Upload the latest browser bundles to a new release release = upload_new_release(target_repo, version, tb_path) # Upload success, publish the release release.edit(draft=False) # Create the links file for this release core = gettor.core.Core(core_path) # Erase old links if any and create a new empty one core.create_links_file('GitHub', readable_fp) print("Creating links file") for asset in release.assets(): url = asset.browser_download_url if url.endswith('.asc'): continue osys, arch, lc = get_bundle_info(asset.name) sha256 = get_file_sha256( os.path.abspath(os.path.join(tb_path, asset.name))) link = "{}${}${}$".format(url, url + ".asc", sha256) print("Adding {}".format(url)) core.add_link('GitHub', osys, lc, link)
gpg = gnupg.GPG() key_data = open(tbb_key).read() import_result = gpg.import_keys(key_data) fp = import_result.results[0]['fingerprint'] # make groups of four characters to make fingerprint more readable # e.g. 123A 456B 789C 012D 345E 678F 901G 234H 567I 890J readable = ' '.join(fp[i:i+4] for i in xrange(0, len(fp), 4)) try: uploaded_files = upload_files(drive_service, upload_dir) # use default config core = gettor.core.Core('/home/gettor/core.cfg') # erase old links core.create_links_file('Drive', readable) # recognize file OS by its extension p1 = re.compile('.*\.tar.xz$') p2 = re.compile('.*\.exe$') p3 = re.compile('.*\.dmg$') p4 = re.compile('.*\.asc$') for file in uploaded_files.keys(): # only run for tor browser installers if p4.match(file): continue asc = "%s.asc" % file abs_file = os.path.abspath(os.path.join(upload_dir, file)) abs_asc = os.path.abspath(os.path.join(upload_dir, asc))
gpg = gnupg.GPG() key_data = open(tbb_key).read() import_result = gpg.import_keys(key_data) fp = import_result.results[0]['fingerprint'] # make groups of four characters to make fingerprint more readable # e.g. 123A 456B 789C 012D 345E 678F 901G 234H 567I 890J readable = ' '.join(fp[i:i + 4] for i in xrange(0, len(fp), 4)) try: uploaded_files = upload_files(upload_dir, client) # use default config core = gettor.core.Core('/home/gettor/core.cfg') # erase old links core.create_links_file('Dropbox', readable) # recognize file OS by its extension p1 = re.compile('.*\.tar.xz$') p2 = re.compile('.*\.exe$') p3 = re.compile('.*\.dmg$') for file in uploaded_files: # build file names asc = "%s.asc" % file abs_file = os.path.abspath(os.path.join(upload_dir, file)) abs_asc = os.path.abspath(os.path.join(upload_dir, asc)) sha_file = get_file_sha256(abs_file) # build links
git.add("%s" % version) git.commit(m=version) git.push() # it takes a while to process the recently pushed files print "Wait a few seconds before asking for the links to Github..." time.sleep(wait_time) print "Trying to get the links" gh = github.GitHub(gh_token, None) repocontent = gh.repo(user, repo).contents().get("%s" % version) core = gettor.core.Core(os.path.abspath("core.cfg")) # erase old links, if any core.create_links_file("GitHub", readable_fp) for file in repocontent: # e.g. https://raw.githubusercontent.com/gettorbrowser/dl/master/4.0.7/TorBrowser-4.0.4-osx32_en-US.dmg m = re.search("%s.*\/(.*)" % raw_content, file[u"download_url"]) if m: filename = m.group(1) # get bundle info according to its OS if re.match(".*\.exe$", filename): osys, arch, lc = get_bundle_info(filename, "windows") filename_asc = filename.replace("exe", "exe.asc") elif re.match(".*\.dmg$", filename): osys, arch, lc = get_bundle_info(filename, "osx") filename_asc = filename.replace("dmg", "dmg.asc")