mirror of
https://github.com/pirate/ArchiveBox.git
synced 2025-08-13 18:14:24 +02:00
use new dry run system
This commit is contained in:
@@ -1058,7 +1058,7 @@ def install(out_dir: Path=DATA_DIR, binproviders: Optional[List[str]]=None, bina
|
|||||||
print()
|
print()
|
||||||
|
|
||||||
for binary in reversed(list(settings.BINARIES.values())):
|
for binary in reversed(list(settings.BINARIES.values())):
|
||||||
if binary.name in ('archivebox', 'django', 'sqlite', 'python', 'pipx'):
|
if binary.name in ('archivebox', 'django', 'sqlite', 'python'):
|
||||||
# obviously must already be installed if we are running
|
# obviously must already be installed if we are running
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -1078,19 +1078,20 @@ def install(out_dir: Path=DATA_DIR, binproviders: Optional[List[str]]=None, bina
|
|||||||
if binproviders:
|
if binproviders:
|
||||||
providers_supported_by_binary = [provider.name for provider in binary.binproviders_supported]
|
providers_supported_by_binary = [provider.name for provider in binary.binproviders_supported]
|
||||||
for binprovider_name in binproviders:
|
for binprovider_name in binproviders:
|
||||||
|
|
||||||
if binprovider_name not in providers_supported_by_binary:
|
if binprovider_name not in providers_supported_by_binary:
|
||||||
continue
|
continue
|
||||||
|
try:
|
||||||
if dry_run:
|
if dry_run:
|
||||||
# always show install commands when doing a dry run
|
# always show install commands when doing a dry run
|
||||||
sys.stderr.write("\033[2;49;90m") # grey53
|
sys.stderr.write("\033[2;49;90m") # grey53
|
||||||
result = binary.install(binproviders=[binprovider_name], dry_run=dry_run).model_dump(exclude={'overrides', 'bin_dir', 'hook_type'})
|
result = binary.install(binproviders=[binprovider_name], dry_run=dry_run).model_dump(exclude={'overrides', 'bin_dir', 'hook_type'})
|
||||||
sys.stderr.write("\033[00m\n") # reset
|
sys.stderr.write("\033[00m\n") # reset
|
||||||
else:
|
else:
|
||||||
result = binary.load_or_install(binproviders=[binprovider_name], fresh=True, dry_run=dry_run).model_dump(exclude={'overrides', 'bin_dir', 'hook_type'})
|
result = binary.load_or_install(binproviders=[binprovider_name], fresh=True, dry_run=dry_run, quiet=False).model_dump(exclude={'overrides', 'bin_dir', 'hook_type'})
|
||||||
if result and result['loaded_version']:
|
if result and result['loaded_version']:
|
||||||
break
|
break
|
||||||
|
except Exception as e:
|
||||||
|
print(f'[red]:cross_mark: Failed to install {binary.name} as using {binprovider_name} as user {ARCHIVEBOX_USER}: {e}[/red]')
|
||||||
else:
|
else:
|
||||||
if dry_run:
|
if dry_run:
|
||||||
sys.stderr.write("\033[2;49;90m") # grey53
|
sys.stderr.write("\033[2;49;90m") # grey53
|
||||||
|
@@ -4,7 +4,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import platform
|
import platform
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List, Optional, Dict
|
from typing import List, Optional
|
||||||
|
|
||||||
# Depends on other PyPI/vendor packages:
|
# Depends on other PyPI/vendor packages:
|
||||||
from rich import print
|
from rich import print
|
||||||
@@ -12,7 +12,6 @@ from pydantic import InstanceOf, Field, model_validator
|
|||||||
from pydantic_pkgr import (
|
from pydantic_pkgr import (
|
||||||
BinProvider,
|
BinProvider,
|
||||||
BinName,
|
BinName,
|
||||||
BinProviderName,
|
|
||||||
BinaryOverrides,
|
BinaryOverrides,
|
||||||
bin_abspath,
|
bin_abspath,
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user