add support for lockfiles on checkout
When checking out repositories, check if a file <filename>.lock.<ext> exists next to the file specified first on the kas CLI. In case this file exists and the --update option is not specified, automatically append this file to the kas CLI before performing any other kas operations. When --update is specified, the lockfile is ignored. Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
parent
3e0dd10416
commit
fe4031ce01
@ -58,7 +58,11 @@ class Config:
|
|||||||
'belong to the same repository or all '
|
'belong to the same repository or all '
|
||||||
'must be outside of versioning control')
|
'must be outside of versioning control')
|
||||||
|
|
||||||
self.handler = IncludeHandler(self.filenames, self.top_repo_path)
|
update = ctx.args.update if hasattr(ctx.args, 'update') else False
|
||||||
|
|
||||||
|
self.handler = IncludeHandler(self.filenames,
|
||||||
|
self.top_repo_path,
|
||||||
|
not update)
|
||||||
self.repo_dict = self._get_repo_dict()
|
self.repo_dict = self._get_repo_dict()
|
||||||
|
|
||||||
def get_build_system(self):
|
def get_build_system(self):
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
from pathlib import Path
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from collections.abc import Mapping
|
from collections.abc import Mapping
|
||||||
import functools
|
import functools
|
||||||
@ -121,12 +122,26 @@ class IncludeHandler:
|
|||||||
relative to the repository root path.
|
relative to the repository root path.
|
||||||
|
|
||||||
The includes are read and merged from the deepest level upwards.
|
The includes are read and merged from the deepest level upwards.
|
||||||
|
|
||||||
|
In case ignore_lock is false, kas checks if a file <file>.lock.<ext>
|
||||||
|
exists next to the first entry in top_files. This file is then appended
|
||||||
|
to the list of top_files.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, top_files, top_repo_path):
|
def __init__(self, top_files, top_repo_path, use_lock=True):
|
||||||
self.top_files = top_files
|
self.top_files = top_files
|
||||||
self.top_repo_path = top_repo_path
|
self.top_repo_path = top_repo_path
|
||||||
|
|
||||||
|
if use_lock:
|
||||||
|
lockfile = self.get_lockfile()
|
||||||
|
if Path(lockfile).exists():
|
||||||
|
logging.debug('includehandler: append lockfile %s', lockfile)
|
||||||
|
self.top_files.append(lockfile)
|
||||||
|
|
||||||
|
def get_lockfile(self):
|
||||||
|
file = Path(self.top_files[0])
|
||||||
|
return file.parent / (file.stem + '.lock' + file.suffix)
|
||||||
|
|
||||||
def get_config(self, repos=None):
|
def get_config(self, repos=None):
|
||||||
"""
|
"""
|
||||||
Parameters:
|
Parameters:
|
||||||
|
Loading…
Reference in New Issue
Block a user