useradd-staticids.bbclass: Make sure opened files are closed

This avoids warnings about unclosed files with Python 3.

(From OE-Core rev: 77adf8341694b76cf58b7a31dda18b85b3eb87a2)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Kjellerstedt 2016-06-10 17:46:10 +02:00 committed by Richard Purdie
parent a9120996e0
commit 93698ac54a
1 changed files with 17 additions and 13 deletions

View File

@ -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]]))
except IOError as e:
if e.errno == errno.ENOENT:
pass
return id_table