diff options
| -rw-r--r-- | meta/classes/useradd-staticids.bbclass | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/meta/classes/useradd-staticids.bbclass b/meta/classes/useradd-staticids.bbclass index a9b506d05d..440c0e3846 100644 --- a/meta/classes/useradd-staticids.bbclass +++ b/meta/classes/useradd-staticids.bbclass | |||
| @@ -4,6 +4,7 @@ def update_useradd_static_config(d): | |||
| 4 | import argparse | 4 | import argparse |
| 5 | import itertools | 5 | import itertools |
| 6 | import re | 6 | import re |
| 7 | import errno | ||
| 7 | 8 | ||
| 8 | class myArgumentParser( argparse.ArgumentParser ): | 9 | class myArgumentParser( argparse.ArgumentParser ): |
| 9 | def _print_message(self, message, file=None): | 10 | def _print_message(self, message, file=None): |
| @@ -30,19 +31,22 @@ def update_useradd_static_config(d): | |||
| 30 | are set).""" | 31 | are set).""" |
| 31 | id_table = dict() | 32 | id_table = dict() |
| 32 | for conf in file_list.split(): | 33 | for conf in file_list.split(): |
| 33 | if os.path.exists(conf): | 34 | try: |
| 34 | f = open(conf, "r") | 35 | with open(conf, "r") as f: |
| 35 | for line in f: | 36 | for line in f: |
| 36 | if line.startswith('#'): | 37 | if line.startswith('#'): |
| 37 | continue | 38 | continue |
| 38 | # Make sure there always are at least exp_fields elements in | 39 | # Make sure there always are at least exp_fields |
| 39 | # the field list. This allows for leaving out trailing | 40 | # elements in the field list. This allows for leaving |
| 40 | # colons in the files. | 41 | # out trailing colons in the files. |
| 41 | fields = list_extend(line.rstrip().split(":"), exp_fields) | 42 | fields = list_extend(line.rstrip().split(":"), exp_fields) |
| 42 | if fields[0] not in id_table: | 43 | if fields[0] not in id_table: |
| 43 | id_table[fields[0]] = fields | 44 | id_table[fields[0]] = fields |
| 44 | else: | 45 | else: |
| 45 | id_table[fields[0]] = list(itertools.imap(lambda x, y: x or y, fields, id_table[fields[0]])) | 46 | id_table[fields[0]] = list(itertools.imap(lambda x, y: x or y, fields, id_table[fields[0]])) |
| 47 | except IOError as e: | ||
| 48 | if e.errno == errno.ENOENT: | ||
| 49 | pass | ||
| 46 | 50 | ||
| 47 | return id_table | 51 | return id_table |
| 48 | 52 | ||
