This commit is contained in:
+26
-5
@@ -1,11 +1,11 @@
|
||||
from plumbum import local, ProcessExecutionError
|
||||
from rich.progress import Progress
|
||||
from rich.console import Console
|
||||
from pathlib import Path
|
||||
from typing import List
|
||||
|
||||
import httpx
|
||||
import typer
|
||||
|
||||
from plumbum import FG, ProcessExecutionError, local
|
||||
from rich.console import Console
|
||||
from rich.progress import Progress
|
||||
|
||||
TOOLS = Path("tools")
|
||||
ORIGINAL = Path("original")
|
||||
@@ -23,7 +23,7 @@ def ensure_dirs():
|
||||
def run(console: Console, cmd: List[str], hide_output=True):
|
||||
prog = local[cmd[0]][cmd[1:]]
|
||||
try:
|
||||
prog() if hide_output else prog & FG # type: ignore [reportUndefinedVariable]
|
||||
prog() if hide_output else prog & FG
|
||||
except ProcessExecutionError as e:
|
||||
console.print(f"[red]Ошибка при выполнении команды: {' '.join(cmd)}")
|
||||
console.print(e.stderr)
|
||||
@@ -31,6 +31,7 @@ def run(console: Console, cmd: List[str], hide_output=True):
|
||||
|
||||
|
||||
def download(console: Console, url: str, dest: Path):
|
||||
"""Скачивание файла по URL"""
|
||||
console.print(f"[cyan]Скачивание {url} → {dest.name}")
|
||||
|
||||
with httpx.Client(follow_redirects=True, timeout=60.0) as client:
|
||||
@@ -45,3 +46,23 @@ def download(console: Console, url: str, dest: Path):
|
||||
for chunk in response.iter_bytes(chunk_size=8192):
|
||||
f.write(chunk)
|
||||
progress.update(task, advance=len(chunk))
|
||||
|
||||
|
||||
def select_apk(console) -> Path:
|
||||
"""Выбор APK файла из папки original"""
|
||||
apks = list(ORIGINAL.glob("*.apk"))
|
||||
|
||||
if not apks:
|
||||
raise BuildError("Нет apk-файлов в папке original")
|
||||
|
||||
if len(apks) == 1:
|
||||
console.print(f"[green]Выбран {apks[0].name}")
|
||||
return apks[0]
|
||||
|
||||
console.print("[cyan]Доступные APK файлы:")
|
||||
options = {str(i): apk for i, apk in enumerate(apks, 1)}
|
||||
for k, v in options.items():
|
||||
console.print(f" {k}. {v.name}")
|
||||
|
||||
choice = Prompt.ask("Выберите номер", choices=list(options.keys()))
|
||||
return options[choice]
|
||||
|
||||
Reference in New Issue
Block a user