From 6a3131c6f894c76da312ffe4a8ca469c6a8619c3 Mon Sep 17 00:00:00 2001 From: Andrew Hlynskyi Date: Tue, 16 Jun 2020 20:12:09 +0300 Subject: [PATCH 1/2] package.py - Fixed patterns applying without specified commands --- package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.py b/package.py index 83033058..d8bbb421 100644 --- a/package.py +++ b/package.py @@ -738,9 +738,9 @@ def execute(self, build_plan, zip_stream, query): if sh_work_dir: if source_path != sh_work_dir: source_path = sh_work_dir - if pf: - self._zip_write_with_filter(zs, pf, source_path, prefix, - timestamp=ts) + if pf: + self._zip_write_with_filter(zs, pf, source_path, prefix, + timestamp=ts) else: if os.path.isdir(source_path): zs.write_dirs(source_path, prefix=prefix, timestamp=ts) From f3aff6d35033dbcb83904342f191bd1760122e21 Mon Sep 17 00:00:00 2001 From: Andrew Hlynskyi Date: Tue, 16 Jun 2020 20:36:20 +0300 Subject: [PATCH 2/2] package.py - allow heredoc commands, don't apply patterns for explicitly specified single file --- package.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/package.py b/package.py index d8bbb421..9ba903f8 100644 --- a/package.py +++ b/package.py @@ -646,6 +646,12 @@ def pip_requirements_step(path, prefix=None, required=False): hash(requirements) def commands_step(path, commands): + if not commands: + return + + if isinstance(commands, str): + commands = map(str.strip, commands.splitlines()) + if path: path = os.path.normpath(path) batch = [] @@ -737,15 +743,16 @@ def execute(self, build_plan, zip_stream, query): source_path, prefix = action[1:] if sh_work_dir: if source_path != sh_work_dir: - source_path = sh_work_dir - if pf: - self._zip_write_with_filter(zs, pf, source_path, prefix, - timestamp=ts) - else: - if os.path.isdir(source_path): - zs.write_dirs(source_path, prefix=prefix, timestamp=ts) + if not os.path.isfile(source_path): + source_path = sh_work_dir + if os.path.isdir(source_path): + if pf: + self._zip_write_with_filter(zs, pf, source_path, prefix, + timestamp=ts) else: - zs.write_file(source_path, prefix=prefix, timestamp=ts) + zs.write_dirs(source_path, prefix=prefix, timestamp=ts) + else: + zs.write_file(source_path, prefix=prefix, timestamp=ts) elif cmd == 'pip': runtime, pip_requirements, prefix = action[1:] with install_pip_requirements(query, pip_requirements) as rd: