1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-29 08:32:26 +01:00
This commit is contained in:
J. Nick Koston
2025-09-16 12:02:57 -05:00
parent 452a12892e
commit edd8fa8d6f
4 changed files with 61 additions and 41 deletions

View File

@@ -17,7 +17,7 @@ from esphome.const import (
TYPE_GIT,
TYPE_LOCAL,
)
from esphome.core import CORE, TimePeriodSeconds
from esphome.core import CORE
_LOGGER = logging.getLogger(__name__)
@@ -40,9 +40,8 @@ async def to_code(config):
def _process_git_config(config: dict, refresh, skip_update: bool = False) -> str:
# When skip_update is True, set a very large refresh value to prevent updates
# Using 100 years in seconds to effectively disable refresh
actual_refresh = TimePeriodSeconds(days=36500) if skip_update else refresh
# When skip_update is True, use NEVER_REFRESH to prevent updates
actual_refresh = git.NEVER_REFRESH if skip_update else refresh
repo_dir, _ = git.clone_or_update(
url=config[CONF_URL],
ref=config.get(CONF_REF),

View File

@@ -107,8 +107,8 @@ CONFIG_SCHEMA = cv.Any(
def _process_base_package(config: dict, skip_update: bool = False) -> dict:
# When skip_update is True, set refresh to None to prevent updates
actual_refresh = None if skip_update else config[CONF_REFRESH]
# When skip_update is True, use NEVER_REFRESH to prevent updates
actual_refresh = git.NEVER_REFRESH if skip_update else config[CONF_REFRESH]
repo_dir, revert = git.clone_or_update(
url=config[CONF_URL],
ref=config.get(CONF_REF),

View File

@@ -13,6 +13,9 @@ from esphome.core import CORE, TimePeriodSeconds
_LOGGER = logging.getLogger(__name__)
# Special value to indicate never refresh
NEVER_REFRESH = TimePeriodSeconds(seconds=-1)
def run_git_command(cmd, cwd=None) -> str:
_LOGGER.debug("Running git command: %s", " ".join(cmd))
@@ -85,6 +88,11 @@ def clone_or_update(
else:
# Check refresh needed
# Skip refresh if NEVER_REFRESH is specified
if refresh == NEVER_REFRESH:
_LOGGER.debug("Skipping update for %s (refresh disabled)", key)
return repo_dir, None
file_timestamp = Path(repo_dir / ".git" / "FETCH_HEAD")
# On first clone, FETCH_HEAD does not exists
if not file_timestamp.exists():