build_folder = current_folder extracted_squashfs = os.path.join(build_folder, 'squashfs-root') AppDir = os.path.join(build_folder, 'AppDir') project_folder = os.path.dirname(os.path.dirname(current_folder)) sys.path.insert(0, project_folder) # for imports to work from firedm.utils import simpledownload, get_pkg_version, delete_folder # get application version ---------------------------------------------------------------------------------------------- version = get_pkg_version(os.path.join(project_folder, 'firedm')) # check for app folder existence, otherwise download latest version from github if not os.path.isdir(AppDir): print('downloading ', APP_NAME) data = simpledownload( 'https://api.github.com/repos/firedm/firedm/releases/latest').decode( "utf-8") # "browser_download_url": "https://github.com/firedm/FireDM/releases/download/2021.2.9/FireDM-2021.2.9-x86_64.AppImage" data = json.loads(data) assets = data['assets'] url = None for asset in assets: filename = asset.get('name', '') if filename.lower().endswith( 'appimage'): # e.g. FireDM-2021.2.9-x86_64.AppImage url = asset.get('browser_download_url') break if url: # download file
os.rename(f'{app_folder}/lib/Tkinter', f'{app_folder}/lib/tkinter') except Exception as e: print(e) # manually remove excluded libraries if found for lib_name in excludes: folder = f'{app_folder}/lib/{lib_name}' delete_folder(folder, verbose=True) # ffmpeg ffmpeg_path = os.path.join(current_folder, 'ffmpeg.exe') if not os.path.isfile(os.path.join(app_folder, 'ffmpeg.exe')): if not os.path.isfile(ffmpeg_path): # download from github ffmpeg_url = 'https://github.com/firedm/FireDM/releases/download/extra/ffmpeg_32bit.exe' simpledownload(ffmpeg_url, fp=ffmpeg_path) shutil.copy(ffmpeg_path, os.path.join(app_folder, 'ffmpeg.exe')) # write resource fields for exe file, i.e. version, app name, copyright, etc ------------------------------------------- # using rcedit.exe from https://github.com/electron/rcedit # check for rcedit.exe rcedit_fp = os.path.join(current_folder, 'rcedit.exe') if not (os.path.isfile(rcedit_fp) or os.path.isfile(os.path.join(app_folder, 'rcedit.exe'))): # download file, will get x86 version, for x64 visit https://github.com/electron/rcedit/releases/latest rcedit_url = 'https://github.com/electron/rcedit/releases/download/v1.1.1/rcedit-x86.exe' simpledownload(rcedit_url, fp=rcedit_fp, return_data=False) # for some reasons rcedit must be in same directory with target file to work properly if not os.path.isfile(os.path.join(app_folder, 'rcedit.exe')):
os.rename(f'{app_folder}/lib/Tkinter', f'{app_folder}/lib/tkinter') except Exception as e: print(e) # manually remove excluded libraries if found for lib_name in excludes: folder = f'{app_folder}/lib/{lib_name}' delete_folder(folder, verbose=True) # ffmpeg ffmpeg_path = os.path.join(current_folder, 'ffmpeg.exe') if not os.path.isfile(os.path.join(app_folder, 'ffmpeg.exe')): if not os.path.isfile(ffmpeg_path): # download from github ffmpeg_url = 'https://github.com/firedm/FireDM/releases/download/extra/ffmpeg_32bit.exe' simpledownload(ffmpeg_url, fp=ffmpeg_path) shutil.copy(ffmpeg_path, os.path.join(app_folder, 'ffmpeg.exe')) # write resource fields for exe files ---------------------------------------------------------------------------------- # install pe-tools https://github.com/avast/pe_tools cmd = f'{sys.executable} -m pip install pe_tools' subprocess.run(cmd, shell=True) for fname in (cmd_target_name, gui_target_name): fp = os.path.join(app_folder, fname) info = { 'Comments': 'https://github.com/firedm/FireDM', 'CompanyName': 'FireDM', 'FileDescription': 'FireDM download manager', 'FileVersion': version,