示例#1
0
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
示例#2
0
    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')):
示例#3
0
    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,