Saqib Khan | a8433f5 | 2017-09-22 10:21:30 -0500 | [diff] [blame] | 1 | # Base image version class extension |
| 2 | |
Brad Bishop | 31d2b76 | 2018-02-08 20:26:58 -0500 | [diff] [blame] | 3 | DEPENDS_append = " os-release" |
| 4 | |
Saqib Khan | a8433f5 | 2017-09-22 10:21:30 -0500 | [diff] [blame] | 5 | def do_get_version(d): |
| 6 | import configparser |
| 7 | import io |
Brad Bishop | 31d2b76 | 2018-02-08 20:26:58 -0500 | [diff] [blame] | 8 | path = d.getVar('STAGING_DIR_TARGET', True) + d.getVar('sysconfdir', True) |
Saqib Khan | a8433f5 | 2017-09-22 10:21:30 -0500 | [diff] [blame] | 9 | path = os.path.join(path, 'os-release') |
| 10 | parser = configparser.SafeConfigParser(strict=False) |
| 11 | parser.optionxform = str |
| 12 | version = '' |
| 13 | try: |
| 14 | with open(path, 'r') as fd: |
| 15 | buf = '[root]\n' + fd.read() |
| 16 | fd = io.StringIO(buf) |
| 17 | parser.readfp(fd) |
| 18 | version = parser['root']['VERSION_ID'] |
| 19 | except: |
| 20 | pass |
| 21 | return version |
| 22 | |
| 23 | def do_get_versionID(d): |
| 24 | import hashlib |
| 25 | version = do_get_version(d) |
| 26 | version = version.strip('"') |
| 27 | version_id = (hashlib.sha512(version.encode('utf-8')).hexdigest())[:8] |
| 28 | return version_id |