[PATCH 1/6] bitbake-setup: Convert string commands to lists where possible
Richard Purdie <[email protected]> Sun, 31 May 2026 19:27:38 +0100
| Newsgroups | org.openembedded.lists.bitbake-devel |
|---|---|
| Message-ID | <[email protected]> |
String commands have to be processed by subprocess using shell=True which is suboptimal for all kinds of reasons, including quoting. Convert to use a list where possible to improve efficiency and the robustness of code. It also means copy and paste will be more likely to use the preferred form. Signed-off-by: Richard Purdie <[email protected]> --- bin/bitbake-setup | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/bin/bitbake-setup b/bin/bitbake-setup index 220540f7f9c..69c9882f4c4 100755 --- a/bin/bitbake-setup +++ b/bin/bitbake-setup @@ -128,8 +128,8 @@ def write_sources_fixed_revisions(config_dir, layer_dir, config_data): os.symlink(os.path.relpath(json_path ,layer_dir), json_link) def commit_config(config_dir): - bb.process.run("git -C {} add .".format(config_dir)) - bb.process.run("git -C {} commit --allow-empty --no-verify -a -m 'Configuration at {}'".format(config_dir, time.asctime())) + bb.process.run(['git', '-C', config_dir, 'add', '.']) + bb.process.run(['git', '-C', config_dir, 'commit', '--allow-empty', '--no-verify', '-a', '-m', 'Configuration at ' + time.asctime()]) def _write_layer_list(dest, repodirs): layers = [] @@ -357,7 +357,7 @@ def setup_bitbake_build(bitbake_config, layerdir, setupdir, thisdir, update_bb_c _setup_build_conf(layers, filerelative_layers, bitbake_confdir) if template: - bb.process.run("{} setup -c {} -b {} --no-shell".format(oesetupbuild, template, bitbake_builddir)) + bb.process.run([oesetupbuild, "setup", "-c", template, "-b", bitbake_builddir, "--no-shell"]) else: oeinitbuildenvdir = os.path.join(layerdir, 'oe-init-build-env-dir') if not os.path.exists(os.path.join(oeinitbuildenvdir, "oe-init-build-env")): @@ -857,11 +857,11 @@ def init_config(top_dir, settings, args): os.makedirs(confdir) os.makedirs(layerdir) - bb.process.run("git -C {} init -b main".format(confdir)) + bb.process.run(["git", "-C", confdir, "init", "-b", "main"]) # Make sure commiting doesn't fail if no default git user is configured on the machine - bb.process.run("git -C {} config user.name bitbake-setup".format(confdir)) - bb.process.run("git -C {} config user.email [email protected]".format(confdir)) - bb.process.run("git -C {} commit --no-verify --allow-empty -m 'Initial commit'".format(confdir)) + bb.process.run(["git", "-C", confdir, "config", "user.name", "bitbake-setup"]) + bb.process.run(["git", "-C", confdir, "config", "user.email", "[email protected]"]) + bb.process.run(["git", "-C", confdir, "commit", "--no-verify", "--allow-empty", "-m", "Initial commit"]) bb.event.register("bb.build.TaskProgress", handle_task_progress, data=d) @@ -872,7 +872,7 @@ def init_config(top_dir, settings, args): def get_diff(file1, file2): try: - bb.process.run('diff {} -uNr {} {}'.format(get_diff_color_param(), file1, file2)) + bb.process.run(["diff", get_diff_color_param(), "-uNr", file1, file2]) except bb.process.ExecutionError as e: if e.exitcode == 1: return e.stdout @@ -887,7 +887,7 @@ def are_layers_changed(layers, layerdir, d): rev = r_remote['rev'] branch = r_remote.get('branch', None) - rev_parse_result = bb.process.run('git -C {} rev-parse HEAD'.format(os.path.join(layerdir, repodir))) + rev_parse_result = bb.process.run(['git', '-C', os.path.join(layerdir, repodir), "rev-parse", "HEAD"]) local_revision = rev_parse_result[0].strip() if sha1_re.match(rev): if rev != local_revision: @@ -937,7 +937,7 @@ def build_status(top_dir, settings, args, d, update=False): new_upstream_config = obtain_config(top_dir, registry, args, source_overrides, d) write_upstream_config(confdir, new_upstream_config) - config_diff = bb.process.run('git -C {} diff {}'.format(confdir, get_diff_color_param()))[0] + config_diff = bb.process.run(["git", "-C" , confdir, "diff", get_diff_color_param()])[0] if config_diff: logger.plain('\nConfiguration in {} has changed:\n{}'.format(setupdir, config_diff)) @@ -945,7 +945,7 @@ def build_status(top_dir, settings, args, d, update=False): update_build(new_upstream_config, confdir, setupdir, layerdir, d, update_bb_conf=args.update_bb_conf, rebase_conflicts_strategy=args.rebase_conflicts_strategy) else: - bb.process.run('git -C {} restore config-upstream.json'.format(confdir)) + bb.process.run(["git", "-C", confdir, "restore", "config-upstream.json"]) return layer_config = merge_overrides_into_sources(current_upstream_config["data"]["sources"], current_upstream_config["source-overrides"]["sources"])