mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-11-13 13:00:16 +00:00
* Split add-on store logic * finish data model * Cleanup models * Cleanup imports * split up store addons * More cleanup * Go to stable * Fix layout * Cleanup interface * Fix restore/snapshot * Fix algo * Fix reload task * Fix typing / remove indirect add-on references * Fix version * Fix repository data * Fix addon repo * Fix api check * Fix API return * Fix model * Temp fix available * Fix lint * Fix install * Fix partial restore * Fix store restore * Fix ingress port * Fix API * Fix style
24 lines
588 B
Python
24 lines
588 B
Python
"""Util add-ons functions."""
|
|
import hashlib
|
|
import logging
|
|
from pathlib import Path
|
|
import re
|
|
|
|
RE_SHA1 = re.compile(r"[a-f0-9]{8}")
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
def get_hash_from_repository(name: str) -> str:
|
|
"""Generate a hash from repository."""
|
|
key = name.lower().encode()
|
|
return hashlib.sha1(key).hexdigest()[:8]
|
|
|
|
|
|
def extract_hash_from_path(path: Path) -> str:
|
|
"""Extract repo id from path."""
|
|
repository_dir = path.parts[-1]
|
|
|
|
if not RE_SHA1.match(repository_dir):
|
|
return get_hash_from_repository(repository_dir)
|
|
return repository_dir
|