diff --git a/bake/bakefile.py b/bake/bakefile.py index 37b3ec2..4e0f9c1 100644 --- a/bake/bakefile.py +++ b/bake/bakefile.py @@ -292,16 +292,7 @@ class TaskScript(BaseAction): return line - def gen_source( - self, - sources=None, - insert_source=None, - remove_comments=False, - include_shebang=True, - ): - - if sources is None: - sources = [] + def gen_source(self, *, sources): source_container = [] @@ -313,34 +304,25 @@ class TaskScript(BaseAction): first_natural_line = "#!/usr/bin/env bash" # Check if there's a shebang. If so, disable injection. - if Bakefile._is_shebang_line(first_natural_line) and include_shebang: + if Bakefile._is_shebang_line(first_natural_line): shebang = first_natural_line yield shebang - if insert_source and Bakefile._is_safe_to_inject(shebang=shebang): - init_source = f". <(bake --source {insert_source})" - yield init_source - source_container.extend(sources) - else: - source_container.extend(sources[-1:]) + source_offset_index = ( + None if Bakefile._is_safe_to_inject(shebang=shebang) else -1 + ) + source_container.extend(sources[source_offset_index:]) else: shebang = "#!/usr/bin/env bash" yield shebang - if insert_source: - init_source = f"source <(bake --source {insert_source})" - yield init_source - source_container += [self.bashfile.funcs_source, self.bashfile.root_source] main_source = "\n".join(source_container) for sourceline in main_source.split("\n"): - if not ( - remove_comments - and Bakefile._is_comment_line(sourceline, exclude_shebang=False) - ): + if not Bakefile._is_comment_line(sourceline, exclude_shebang=False): if sourceline: yield sourceline diff --git a/bake/cli.py b/bake/cli.py index 6045935..4dff8de 100644 --- a/bake/cli.py +++ b/bake/cli.py @@ -242,9 +242,7 @@ def entrypoint( source = random.choice(list(bakefile.tasks.keys())) task = bakefile.tasks[source] source = task.gen_source( - remove_comments=True, - include_shebang=True, - sources=[task.bashfile.funcs_source, task.bashfile.root_source], + sources=[task.bashfile.funcs_source, task.bashfile.root_source] ) else: task = bakefile.tasks[source] @@ -253,10 +251,7 @@ def entrypoint( task.bashfile.funcs_source, task.bashfile.root_source, task.source, - ], - remove_comments=True, - insert_source="__init__", - include_shebang=True, + ] ) for source_line in source: