-#!/usr/bin/python
+#!/usr/bin/python3
#
-#/**************************************************************************
+# /**************************************************************************
# * Copyright 2017-2018 IoT.bzh
# *
# * author: Romain Forlot <romain.forlot@iot.bzh>
import fnmatch
import argparse
import subprocess
+import re
PARSER = argparse.ArgumentParser(
description='Lists available and installed SDKs')
ENV = subprocess.check_output(
[os.path.join(SCRIPT_PATH, './_env-init.sh'), '-print']).splitlines()
+SDK_ROOT_DIR = None
for elt in ENV:
- k, v = elt.split('=', 1)
- if k == 'SDK_ROOT_DIR':
- SDK_ROOT_DIR = v.rstrip('/')
- elif k == 'SDK_ENV_SETUP_FILENAME':
- SDK_ENV_SETUP_FILENAME = v
+ #only match what defines a variable
+ z = re.match(r"^(\w+)=([^']*)$", elt.decode())
+ if z:
+ k = z.group(1)
+ v = z.group(2)
+ if k == 'SDK_ROOT_DIR':
+ SDK_ROOT_DIR = v.rstrip('/')
+ elif k == 'SDK_ENV_SETUP_FILENAME':
+ SDK_ENV_SETUP_FILENAME = v
if SDK_ROOT_DIR is None:
logging.error('No SDK_ROOT_DIR environment variable found.')
for one_sdk in SDK_DB_JSON:
one_sdk['status'] = 'Not Installed'
+ one_sdk['uuid'] = ''
INSTALLED_SDK = []
for root, dirs, files in os.walk(SDK_ROOT_DIR):
logging.debug('Path not compliant, skipping')
continue
+ UUID = os.path.basename(os.path.normpath(DIR))
+
SDK_DATE = ''
for line in open(one_sdk['VERSION_FILE']).readlines():
if line.startswith('Timestamp'):
sdk['date'] = SDK_DATE
sdk['setupFile'] = one_sdk['ENV_FILE']
sdk['path'] = DIR
+ sdk['uuid'] = UUID
break
if not found:
PROFILE + '-' + ARCH + '-' + VERSION)
NEW_SDK = {
'name': PROFILE + '-' + ARCH + '-' + VERSION,
+ 'uuid': UUID,
'description': 'AGL SDK ' + ARCH + ' (version ' + VERSION + ')',
'profile': PROFILE,
'version': VERSION,