Patchwork [1/1] yocto_kernel: check current items before add a new one

login
register
mail settings
Submitter Ning Zhang
Date May 29, 2013, 8:14 a.m.
Message ID <9fbec3ccfc2d674d09ec44c2a7bd57a5b751f8a0.1369814765.git.ning.zhan@windriver.com>
Download mbox | patch
Permalink /patch/50667/
State Accepted
Commit 7285246deb55ed199c5f2a27d5771e1efec04e80
Headers show

Comments

Ning Zhang - May 29, 2013, 8:14 a.m.
From: Zhang Ning <ning.zhan@windriver.com>

When use "yocto-kernel config add" to add the same config many times,
all of these are list when use "yocto-kernel config list" to check.

This fix modify routine yocto_kernel_config_add, if the new added
components already exist in current configuration, just igore them.
Now, one config could only be added one time.

[YOCTO #4562]

Signen-off-by: Zhang Ning <ning.zhan@windriver.com>
---
 scripts/lib/bsp/kernel.py |   32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)
Tom Zanussi - May 29, 2013, 1:22 p.m.
On Wed, 2013-05-29 at 16:14 +0800, Ning Zhang wrote:
> From: Zhang Ning <ning.zhan@windriver.com>
> 
> When use "yocto-kernel config add" to add the same config many times,
> all of these are list when use "yocto-kernel config list" to check.
> 
> This fix modify routine yocto_kernel_config_add, if the new added
> components already exist in current configuration, just igore them.
> Now, one config could only be added one time.
> 
> [YOCTO #4562]
> 
> Signen-off-by: Zhang Ning <ning.zhan@windriver.com>
> ---
>  scripts/lib/bsp/kernel.py |   32 +++++++++++++++++++++-----------
>  1 file changed, 21 insertions(+), 11 deletions(-)
> 
> diff --git a/scripts/lib/bsp/kernel.py b/scripts/lib/bsp/kernel.py
> index fc1e6bd..9ed6e94 100644
> --- a/scripts/lib/bsp/kernel.py
> +++ b/scripts/lib/bsp/kernel.py
> @@ -239,22 +239,32 @@ def yocto_kernel_config_add(scripts_path, machine, config_items):
>      user-defined config fragment [${machine}-user-config.cfg].
>      """
>      new_items = []
> +    dup_items = []
> +
> +    cur_items = read_config_items(scripts_path, machine)
>  
>      for item in config_items:
>          if not item.startswith("CONFIG") or (not "=y" in item and not "=m" in item):
>              print "Invalid config item (%s), exiting" % item
>              sys.exit(1)
> -        new_items.append(item)
> -
> -    cur_items = read_config_items(scripts_path, machine)
> -    cur_items.extend(new_items)
> -
> -    write_config_items(scripts_path, machine, cur_items)
> -
> -    print "Added items:"
> -    for n in new_items:
> -        print "\t%s" % n
> -
> +        if item not in cur_items and item not in new_items:
> +            new_items.append(item)
> +        else:
> +            dup_items.append(item)
> +
> +    if len(new_items) > 0:
> +        cur_items.extend(new_items)
> +        write_config_items(scripts_path, machine, cur_items)
> +        print "Added item%s:" % ("" if len(new_items)==1 else "s")
> +        for n in new_items:
> +            print "\t%s" % n
> +
> +    if len(dup_items) > 0:
> +        output="Below item%s already exist%s in current configuration, ignore %s" % \

This patch looks fine, but please change the text to:

+        output="The following item%s already exist%s in the current configuration, ignoring %s" % \

Thanks,

Tom

> +            (("","s", "it") if len(dup_items)==1 else ("s", "", "them" ))
> +        print output
> +        for n in dup_items:
> +            print "\t%s" % n
>  
>  def find_current_kernel(bsp_layer, machine):
>      """

Patch

diff --git a/scripts/lib/bsp/kernel.py b/scripts/lib/bsp/kernel.py
index fc1e6bd..9ed6e94 100644
--- a/scripts/lib/bsp/kernel.py
+++ b/scripts/lib/bsp/kernel.py
@@ -239,22 +239,32 @@  def yocto_kernel_config_add(scripts_path, machine, config_items):
     user-defined config fragment [${machine}-user-config.cfg].
     """
     new_items = []
+    dup_items = []
+
+    cur_items = read_config_items(scripts_path, machine)
 
     for item in config_items:
         if not item.startswith("CONFIG") or (not "=y" in item and not "=m" in item):
             print "Invalid config item (%s), exiting" % item
             sys.exit(1)
-        new_items.append(item)
-
-    cur_items = read_config_items(scripts_path, machine)
-    cur_items.extend(new_items)
-
-    write_config_items(scripts_path, machine, cur_items)
-
-    print "Added items:"
-    for n in new_items:
-        print "\t%s" % n
-
+        if item not in cur_items and item not in new_items:
+            new_items.append(item)
+        else:
+            dup_items.append(item)
+
+    if len(new_items) > 0:
+        cur_items.extend(new_items)
+        write_config_items(scripts_path, machine, cur_items)
+        print "Added item%s:" % ("" if len(new_items)==1 else "s")
+        for n in new_items:
+            print "\t%s" % n
+
+    if len(dup_items) > 0:
+        output="Below item%s already exist%s in current configuration, ignore %s" % \
+            (("","s", "it") if len(dup_items)==1 else ("s", "", "them" ))
+        print output
+        for n in dup_items:
+            print "\t%s" % n
 
 def find_current_kernel(bsp_layer, machine):
     """