Git for WAPT
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.6 KiB

# -*- coding: utf-8 -*-
from setuphelpers import *
import requests,json
uninstallkey = []
def install():
print('Installing Git for Windows')
version = control['version'].split('-',1)[0]
arch = '64' if iswin64() else '32'
install_exe_if_needed(
'Git-%s-%s-bit.exe' % (version,arch),
silentflags='/LOADINF="git.inf" /VERYSILENT /CLOSEAPPLICATIONS /NORESTART',
min_version=version,
key='Git_is1'
)
def update_package():
import re
print('Updating Git Package')
latest = json.loads(requests.get('https://api.github.com/repos/git-for-windows/git/releases/latest').text.encode('utf-8'))
version = re.search('v(.*)\.windows\.1', latest['tag_name']).group(1)
pe = PackageEntry();
control = pe.load_control_from_wapt('.')
print('Last version is %s' % version)
for arch in ['32','64']:
for asset in latest['assets']:
if asset['name'] == 'Git-%s-%s-bit.exe' %(version,arch) and not isfile('Git-%s-%s-bit.exe' % (version,arch)):
url = asset['browser_download_url']
print('Downloading Git %s for win%s from %s' % (version,arch,url))
wget(url,asset['name'])
for old in glob.glob(r'Git-*-%s-bit.exe' % arch):
if not old == 'Git-%s-%s-bit.exe' %(version,arch):
remove_file(old)
if Version(version) > Version(control['version'].split('-',1)[0]):
print('Updating control file with new version %s' % version)
pe.version = version + '-0'
pe.maturity = 'PREPROD'
pe.save_control_to_wapt('.')