1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 00:20:08 +00:00

lib/configfragements: enable/disable multiple fragements at once

Extends the 'enable-fragment' and 'disable-fragment' commands so that
they accept multiple fragments at once as a convenience for the user

(From OE-Core rev: 50c3cdb3a3b9c7daa55ff26d302d95e5f350e4d2)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Watt
2024-12-20 13:41:45 -07:00
committed by Richard Purdie
parent 9054345fb8
commit 5cef6cbe2d
+17 -14
View File
@@ -103,34 +103,37 @@ class ConfigFragmentsPlugin(LayerPlugin):
""" Enable a fragment in the local build configuration """ """ Enable a fragment in the local build configuration """
def enable_helper(varname, origvalue, op, newlines): def enable_helper(varname, origvalue, op, newlines):
enabled_fragments = origvalue.split() enabled_fragments = origvalue.split()
if args.fragmentname in enabled_fragments: for f in args.fragmentname:
print("Fragment {} already included in {}".format(args.fragmentname, args.confpath)) if f in enabled_fragments:
else: print("Fragment {} already included in {}".format(f, args.confpath))
enabled_fragments.append(args.fragmentname) else:
enabled_fragments.append(f)
return " ".join(enabled_fragments), None, 0, True return " ".join(enabled_fragments), None, 0, True
if not self.fragment_exists(args.fragmentname): for f in args.fragmentname:
raise Exception("Fragment {} does not exist; use 'list-fragments' to see the full list.".format(args.fragmentname)) if not self.fragment_exists(f):
raise Exception("Fragment {} does not exist; use 'list-fragments' to see the full list.".format(f))
self.create_conf(args.confpath) self.create_conf(args.confpath)
modified = bb.utils.edit_metadata_file(args.confpath, ["OE_FRAGMENTS"], enable_helper) modified = bb.utils.edit_metadata_file(args.confpath, ["OE_FRAGMENTS"], enable_helper)
if modified: if modified:
print("Fragment {} added to {}.".format(args.fragmentname, args.confpath)) print("Fragment {} added to {}.".format(", ".join(args.fragmentname), args.confpath))
def do_disable_fragment(self, args): def do_disable_fragment(self, args):
""" Disable a fragment in the local build configuration """ """ Disable a fragment in the local build configuration """
def disable_helper(varname, origvalue, op, newlines): def disable_helper(varname, origvalue, op, newlines):
enabled_fragments = origvalue.split() enabled_fragments = origvalue.split()
if args.fragmentname in enabled_fragments: for f in args.fragmentname:
enabled_fragments.remove(args.fragmentname) if f in enabled_fragments:
else: enabled_fragments.remove(f)
print("Fragment {} not currently enabled in {}".format(args.fragmentname, args.confpath)) else:
print("Fragment {} not currently enabled in {}".format(f, args.confpath))
return " ".join(enabled_fragments), None, 0, True return " ".join(enabled_fragments), None, 0, True
self.create_conf(args.confpath) self.create_conf(args.confpath)
modified = bb.utils.edit_metadata_file(args.confpath, ["OE_FRAGMENTS"], disable_helper) modified = bb.utils.edit_metadata_file(args.confpath, ["OE_FRAGMENTS"], disable_helper)
if modified: if modified:
print("Fragment {} removed from {}.".format(args.fragmentname, args.confpath)) print("Fragment {} removed from {}.".format(", ".join(args.fragmentname), args.confpath))
def do_disable_all_fragments(self, args): def do_disable_all_fragments(self, args):
""" Disable all fragments in the local build configuration """ """ Disable all fragments in the local build configuration """
@@ -151,11 +154,11 @@ class ConfigFragmentsPlugin(LayerPlugin):
parser_enable_fragment = self.add_command(sp, 'enable-fragment', self.do_enable_fragment, parserecipes=False) parser_enable_fragment = self.add_command(sp, 'enable-fragment', self.do_enable_fragment, parserecipes=False)
parser_enable_fragment.add_argument("--confpath", default=default_confpath, help='Configuration file which contains a list of enabled fragments (default is {}).'.format(default_confpath)) parser_enable_fragment.add_argument("--confpath", default=default_confpath, help='Configuration file which contains a list of enabled fragments (default is {}).'.format(default_confpath))
parser_enable_fragment.add_argument('fragmentname', help='The name of the fragment (use list-fragments to see them)') parser_enable_fragment.add_argument('fragmentname', help='The name of the fragment (use list-fragments to see them)', nargs='+')
parser_disable_fragment = self.add_command(sp, 'disable-fragment', self.do_disable_fragment, parserecipes=False) parser_disable_fragment = self.add_command(sp, 'disable-fragment', self.do_disable_fragment, parserecipes=False)
parser_disable_fragment.add_argument("--confpath", default=default_confpath, help='Configuration file which contains a list of enabled fragments (default is {}).'.format(default_confpath)) parser_disable_fragment.add_argument("--confpath", default=default_confpath, help='Configuration file which contains a list of enabled fragments (default is {}).'.format(default_confpath))
parser_disable_fragment.add_argument('fragmentname', help='The name of the fragment') parser_disable_fragment.add_argument('fragmentname', help='The name of the fragment', nargs='+')
parser_disable_all = self.add_command(sp, 'disable-all-fragments', self.do_disable_all_fragments, parserecipes=False) parser_disable_all = self.add_command(sp, 'disable-all-fragments', self.do_disable_all_fragments, parserecipes=False)
parser_disable_all.add_argument("--confpath", default=default_confpath, help='Configuration file which contains a list of enabled fragments (default is {}).'.format(default_confpath)) parser_disable_all.add_argument("--confpath", default=default_confpath, help='Configuration file which contains a list of enabled fragments (default is {}).'.format(default_confpath))