nur/update.py: fix build when repositories are not available

This commit is contained in:
Jörg Thalheim 2018-07-21 15:04:48 +01:00
parent d5f571e305
commit 36dd399d0d

View file

@ -16,6 +16,7 @@ import tempfile
#from dataclasses import dataclass, field, InitVar
from enum import Enum, auto
from urllib.parse import urlparse, urljoin, ParseResult
import logging
ROOT = Path(__file__).parent.parent.resolve();
LOCK_PATH = ROOT.joinpath("repos.json.lock")
@ -24,6 +25,8 @@ EVALREPO_PATH = ROOT.joinpath("lib/evalRepo.nix")
Url = ParseResult
logger = logging.getLogger(__name__)
class NurError(Exception):
pass
@ -297,10 +300,12 @@ def main() -> None:
try:
repos.append(update(spec, locked_repo))
except NurError as e:
print(f"failed to update repository {name}: {e}", file=sys.stderr)
if locked_repo:
repos.append(locked_repo)
except Exception as e:
if locked_repo is None:
# likely a repository added in a pull request, make it fatal then
raise
logger.exception(f"Failed to updated repo: {spec.name}")
repos.append(locked_repo)
update_lock_file(repos)