Merge pull request #229 from slackingfred/1ststart

Fix Git package download
This commit is contained in:
Azalea 2024-02-06 19:26:18 -05:00 committed by GitHub
commit fd5ff6a821
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 13 deletions

View file

@ -51,4 +51,4 @@ class GlobalConfig:
GLOBAL_CFG = GlobalConfig(color_mode='8bit', override_distro=None, debug=False, is_light=False, use_overlay=False) GLOBAL_CFG = GlobalConfig(color_mode='8bit', override_distro=None, debug=False, is_light=False, use_overlay=False)
MINGIT_URL = 'https://github.com/git-for-windows/git/releases/download/v2.37.2.windows.2/MinGit-2.37.2.2-busybox-32-bit.zip' GIT_URL = 'https://github.com/git-for-windows/git/releases/download/v2.37.2.windows.2/Git-2.37.2.2-32-bit.tar.bz2'

View file

@ -7,7 +7,7 @@ import shlex
import shutil import shutil
import subprocess import subprocess
import sys import sys
import zipfile import tarfile
from dataclasses import dataclass from dataclasses import dataclass
from pathlib import Path from pathlib import Path
from subprocess import check_output from subprocess import check_output
@ -17,7 +17,7 @@ from typing import Iterable
import pkg_resources import pkg_resources
from .color_util import color, printc from .color_util import color, printc
from .constants import GLOBAL_CFG, MINGIT_URL, IS_WINDOWS from .constants import GLOBAL_CFG, GIT_URL, IS_WINDOWS
from .distros import distro_detector from .distros import distro_detector
from .presets import ColorProfile from .presets import ColorProfile
from .serializer import from_dict from .serializer import from_dict
@ -246,21 +246,23 @@ def ensure_git_bash() -> Path:
# Previously downloaded portable installation # Previously downloaded portable installation
path = Path(__file__).parent / 'min_git' path = Path(__file__).parent / 'min_git'
pkg_path = path / 'package.zip' portable_bash_exe = path / r'bin\bash.exe'
if path.is_dir(): if path.is_dir() and portable_bash_exe.is_file():
return path / r'bin\bash.exe' return portable_bash_exe
# No installation found, download a portable installation # No installation found, download a portable installation
print('Git installation not found. Git is required to use HyFetch/neofetch on Windows') Path.mkdir(path, parents=True, exist_ok=True)
if literal_input('Would you like to install a minimal package for Git? (if no is selected colors almost certainly won\'t work)', ['yes', 'no'], 'yes', False) == 'yes': pkg_path = path / 'package.tbz'
print('Downloading a minimal portable package for Git...') print('Git installation not found. Git Bash is required to use HyFetch/neofetch on Windows')
if literal_input('Would you like to download and install Git into HyFetch package directory? (if no is selected colors almost certainly won\'t work)', ['yes', 'no'], 'yes', False) == 'yes':
print('Downloading a portable version of Git...')
from urllib.request import urlretrieve from urllib.request import urlretrieve
urlretrieve(MINGIT_URL, pkg_path) urlretrieve(GIT_URL, pkg_path)
print('Download finished! Extracting...') print('Download finished! Extracting...')
with zipfile.ZipFile(pkg_path, 'r') as zip_ref: with tarfile.open(pkg_path, 'r:bz2') as tbz_ref:
zip_ref.extractall(path) tbz_ref.extractall(path)
print('Done!') print('Done!')
return path / r'bin\bash.exe' return portable_bash_exe
else: else:
sys.exit() sys.exit()