mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2025-05-18 09:04:26 -04:00
add md5 hashes to dependencies dict
This commit is contained in:
parent
29ced7b5c8
commit
50b947f41d
1 changed files with 21 additions and 0 deletions
|
@ -1,12 +1,14 @@
|
||||||
__package__ = 'archivebox.legacy'
|
__package__ = 'archivebox.legacy'
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import io
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import django
|
import django
|
||||||
import getpass
|
import getpass
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
|
from hashlib import md5
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from subprocess import run, PIPE, DEVNULL
|
from subprocess import run, PIPE, DEVNULL
|
||||||
|
|
||||||
|
@ -173,6 +175,18 @@ def bin_version(binary: str) -> Optional[str]:
|
||||||
stderr()
|
stderr()
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def bin_hash(binary: str) -> Optional[str]:
|
||||||
|
bin_path = binary and shutil.which(os.path.expanduser(binary))
|
||||||
|
if not bin_path:
|
||||||
|
return None
|
||||||
|
|
||||||
|
file_hash = md5()
|
||||||
|
with io.open(bin_path, mode='rb') as f:
|
||||||
|
for chunk in iter(lambda: f.read(io.DEFAULT_BUFFER_SIZE), b''):
|
||||||
|
file_hash.update(chunk)
|
||||||
|
|
||||||
|
return f'md5:{file_hash.hexdigest()}'
|
||||||
|
|
||||||
|
|
||||||
def find_chrome_binary() -> Optional[str]:
|
def find_chrome_binary() -> Optional[str]:
|
||||||
"""find any installed chrome binaries in the default locations"""
|
"""find any installed chrome binaries in the default locations"""
|
||||||
|
@ -372,42 +386,49 @@ try:
|
||||||
'PYTHON_BINARY': {
|
'PYTHON_BINARY': {
|
||||||
'path': PYTHON_BINARY,
|
'path': PYTHON_BINARY,
|
||||||
'version': PYTHON_VERSION,
|
'version': PYTHON_VERSION,
|
||||||
|
'hash': bin_hash(PYTHON_BINARY),
|
||||||
'enabled': True,
|
'enabled': True,
|
||||||
'is_valid': bool(DJANGO_VERSION),
|
'is_valid': bool(DJANGO_VERSION),
|
||||||
},
|
},
|
||||||
'DJANGO_BINARY': {
|
'DJANGO_BINARY': {
|
||||||
'path': DJANGO_BINARY,
|
'path': DJANGO_BINARY,
|
||||||
'version': DJANGO_VERSION,
|
'version': DJANGO_VERSION,
|
||||||
|
'hash': bin_hash(DJANGO_BINARY),
|
||||||
'enabled': True,
|
'enabled': True,
|
||||||
'is_valid': bool(DJANGO_VERSION),
|
'is_valid': bool(DJANGO_VERSION),
|
||||||
},
|
},
|
||||||
'CURL_BINARY': {
|
'CURL_BINARY': {
|
||||||
'path': CURL_BINARY and shutil.which(CURL_BINARY),
|
'path': CURL_BINARY and shutil.which(CURL_BINARY),
|
||||||
'version': CURL_VERSION,
|
'version': CURL_VERSION,
|
||||||
|
'hash': bin_hash(PYTHON_BINARY),
|
||||||
'enabled': USE_CURL,
|
'enabled': USE_CURL,
|
||||||
'is_valid': bool(CURL_VERSION),
|
'is_valid': bool(CURL_VERSION),
|
||||||
},
|
},
|
||||||
'WGET_BINARY': {
|
'WGET_BINARY': {
|
||||||
'path': WGET_BINARY and shutil.which(WGET_BINARY),
|
'path': WGET_BINARY and shutil.which(WGET_BINARY),
|
||||||
'version': WGET_VERSION,
|
'version': WGET_VERSION,
|
||||||
|
'hash': bin_hash(WGET_BINARY),
|
||||||
'enabled': USE_WGET,
|
'enabled': USE_WGET,
|
||||||
'is_valid': bool(WGET_VERSION),
|
'is_valid': bool(WGET_VERSION),
|
||||||
},
|
},
|
||||||
'GIT_BINARY': {
|
'GIT_BINARY': {
|
||||||
'path': GIT_BINARY and shutil.which(GIT_BINARY),
|
'path': GIT_BINARY and shutil.which(GIT_BINARY),
|
||||||
'version': GIT_VERSION,
|
'version': GIT_VERSION,
|
||||||
|
'hash': bin_hash(GIT_BINARY),
|
||||||
'enabled': FETCH_GIT,
|
'enabled': FETCH_GIT,
|
||||||
'is_valid': bool(GIT_VERSION),
|
'is_valid': bool(GIT_VERSION),
|
||||||
},
|
},
|
||||||
'YOUTUBEDL_BINARY': {
|
'YOUTUBEDL_BINARY': {
|
||||||
'path': YOUTUBEDL_BINARY and shutil.which(YOUTUBEDL_BINARY),
|
'path': YOUTUBEDL_BINARY and shutil.which(YOUTUBEDL_BINARY),
|
||||||
'version': YOUTUBEDL_VERSION,
|
'version': YOUTUBEDL_VERSION,
|
||||||
|
'hash': bin_hash(YOUTUBEDL_BINARY),
|
||||||
'enabled': FETCH_MEDIA,
|
'enabled': FETCH_MEDIA,
|
||||||
'is_valid': bool(YOUTUBEDL_VERSION),
|
'is_valid': bool(YOUTUBEDL_VERSION),
|
||||||
},
|
},
|
||||||
'CHROME_BINARY': {
|
'CHROME_BINARY': {
|
||||||
'path': CHROME_BINARY and shutil.which(CHROME_BINARY),
|
'path': CHROME_BINARY and shutil.which(CHROME_BINARY),
|
||||||
'version': CHROME_VERSION,
|
'version': CHROME_VERSION,
|
||||||
|
'hash': bin_hash(CHROME_BINARY),
|
||||||
'enabled': USE_CHROME,
|
'enabled': USE_CHROME,
|
||||||
'is_valid': bool(CHROME_VERSION),
|
'is_valid': bool(CHROME_VERSION),
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue