[OE-core] [PATCH 1/1] useradd-staticids.bbclass: Make sure opened files are closed
George McCollister
george.mccollister at gmail.com
Thu Jun 16 13:07:25 UTC 2016
On Thu, Jun 9, 2016 at 6:07 PM, Peter Kjellerstedt
<peter.kjellerstedt at axis.com> wrote:
> This avoids warnings about unclosed files with Python 3.
>
> Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
> ---
> meta/classes/useradd-staticids.bbclass | 30 +++++++++++++++++-------------
> 1 file changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/meta/classes/useradd-staticids.bbclass b/meta/classes/useradd-staticids.bbclass
> index a9b506d..440c0e3 100644
> --- a/meta/classes/useradd-staticids.bbclass
> +++ b/meta/classes/useradd-staticids.bbclass
> @@ -4,6 +4,7 @@ def update_useradd_static_config(d):
> import argparse
> import itertools
> import re
> + import errno
>
> class myArgumentParser( argparse.ArgumentParser ):
> def _print_message(self, message, file=None):
> @@ -30,19 +31,22 @@ def update_useradd_static_config(d):
> are set)."""
> id_table = dict()
> for conf in file_list.split():
> - if os.path.exists(conf):
> - f = open(conf, "r")
> - for line in f:
> - if line.startswith('#'):
> - continue
> - # Make sure there always are at least exp_fields elements in
> - # the field list. This allows for leaving out trailing
> - # colons in the files.
> - fields = list_extend(line.rstrip().split(":"), exp_fields)
> - if fields[0] not in id_table:
> - id_table[fields[0]] = fields
> - else:
> - id_table[fields[0]] = list(itertools.imap(lambda x, y: x or y, fields, id_table[fields[0]]))
> + try:
> + with open(conf, "r") as f:
> + for line in f:
> + if line.startswith('#'):
> + continue
> + # Make sure there always are at least exp_fields
> + # elements in the field list. This allows for leaving
> + # out trailing colons in the files.
> + fields = list_extend(line.rstrip().split(":"), exp_fields)
> + if fields[0] not in id_table:
> + id_table[fields[0]] = fields
> + else:
> + id_table[fields[0]] = list(itertools.imap(lambda x, y: x or y, fields, id_table[fields[0]]))
This is still broken for me. As far as I can tell itertools.imap
doesn't exist in Python 3.
> + except IOError as e:
> + if e.errno == errno.ENOENT:
> + pass
>
> return id_table
>
> --
> 2.8.3
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
More information about the Openembedded-core
mailing list