Seite 1 von 1

[GELÖST] Paket für Sourcetree

Veröffentlicht: 12. November 2024 - 13:44 Uhr
von bastien30
Guten Morgen,

Falls es von Nutzen ist, hier ist der Code für das Paket, das ich für die Sourcetree-Software verwende (https://www.sourcetreeapp.com/) :

Für Windows:

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    appver = control.version.split('-',1)[0]
    bin_name = r'SourcetreeEnterpriseSetup_%s.msi' % appver
    parameters = {'ACCEPTEULA':'1'}
    install_msi_if_needed(bin_name, min_version=appver, killbefore=control.impacted_process, properties=parameters)

def update_package():
    appver = control.version.split('-',1)[0]
    url = r'https://www.sourcetreeapp.com/download-archives'

    print(r'Checking latest version...')
    for release in bs_find_all(url, "a"):
        if "Download free" in release:
            continue
        if release["href"].endswith(".msi"):
            url_dl = (release["href"])
            break
    latest_version = url_dl.split("/")[-1].split(".msi")[0].split("_")[-1]

    if Version(latest_version) > Version(appver):
        bin_name = url_dl.split("/")[-1]
        print(r'Latest version is: %s' % latest_version)
        print(r'Downloading latest binary...')
        wget(url_dl, bin_name)
        # Changing version of the package
        control.version = '%s-%s'%(latest_version,(control.version.split('-')[-1]))
        control.save_control_to_wapt()
        print('Changing version to: %s in WAPT\\control' % control.version)
    else:
        print(r'Already up to date !')

    # Deleting outdated binaries
    remove_outdated_binaries(latest_version)
Für macOS:

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

zip_name_begin = r'Sourcetree'
app_name = r'Sourcetree.app'

def install():
    zip_name = glob.glob('%s*.zip' % zip_name_begin)[0]
    run(r'unzip -qq %s %s/*' % (zip_name, app_name))
    install_app(app_name)

def uninstall():
    uninstall_app(app_name)

def update_package():
    appver = control.version.split('-',1)[0]
    url = r'https://www.sourcetreeapp.com/download-archives'

    print(r'Checking latest version...')
    for release in bs_find_all(url, "a"):
        if "Download free" in release:
            continue
        if release["href"].endswith(".zip"):
            url_dl = (release["href"])
            break
    latest_version = url_dl.split("/")[-1].split(".zip")[0].split("_")[-2]

    if Version(latest_version) > Version(appver):
        bin_name = url_dl.split("/")[-1]
        # Remove older version ZIP file
        try:
            old_zip_name = glob.glob('%s*.zip' % zip_name_begin)[0]
            if isfile(old_zip_name):
                remove_file(old_zip_name)
        except:
            pass
        print(r'Latest version is: %s' % latest_version)
        print(r'Downloading latest binary...')
        wget(url_dl, bin_name)
        # Changing version of the package
        control.version = '%s-%s'%(latest_version,(control.version.split('-')[-1]))
        control.save_control_to_wapt()
        print('Changing version to: %s in WAPT\\control' % control.version)
    else:
        print(r'Already up to date !')
Wenn es möglich wäre, es auch für den TIS-Store zu übernehmen, wäre das auch schön :D
Dank im Voraus.

Betreff: [GELÖST] Paket für Sourcetree

Veröffentlicht: 12. November 2024 - 16:54 Uhr
von italbot
Hallo,

vielen Dank fürs Teilen. Ich habe das Paket soeben erstellt; es wird in 5 Tagen im Shop verfügbar sein.

Schönen Tag noch!

Herzliche Grüße,

Ingrid

Betreff: [GELÖST] Paket für Sourcetree

Veröffentlicht: 12. November 2024 – 16:56 Uhr
von bastien30
Vielen Dank! :D