diff --git a/platformio/builder/tools/piomisc.py b/platformio/builder/tools/piomisc.py index 0e253ce7..fc08ed93 100644 --- a/platformio/builder/tools/piomisc.py +++ b/platformio/builder/tools/piomisc.py @@ -285,10 +285,7 @@ def ProcessTest(env): join("$BUILD_DIR", "UnityTestLib"), get_core_package_dir("tool-unity")) env.Prepend(LIBS=[unitylib]) - src_filter = [ - "+<*.cpp>", - "+<*.c>" - ] + src_filter = ["+<*.cpp>", "+<*.c>"] if "PIOTEST" in env: src_filter.append("+<%s%s>" % (env['PIOTEST'], sep)) diff --git a/platformio/exception.py b/platformio/exception.py index 8743e784..e190d7a4 100644 --- a/platformio/exception.py +++ b/platformio/exception.py @@ -32,6 +32,10 @@ class MinitermException(PlatformioException): pass +class UserSideException(PlatformioException): + pass + + class AbortedByUser(PlatformioException): MESSAGE = "Aborted by user" diff --git a/platformio/ide/projectgenerator.py b/platformio/ide/projectgenerator.py index c12d4731..1561bc6e 100644 --- a/platformio/ide/projectgenerator.py +++ b/platformio/ide/projectgenerator.py @@ -46,7 +46,7 @@ class ProjectGenerator(object): @util.memoized def get_project_env(self): - data = None + data = {} config = util.load_project_config(self.project_dir) for section in config.sections(): if not section.startswith("env:"): diff --git a/platformio/telemetry.py b/platformio/telemetry.py index bcf39fbe..5482353c 100644 --- a/platformio/telemetry.py +++ b/platformio/telemetry.py @@ -92,10 +92,24 @@ class MeasurementProtocol(TelemetryBase): self['an'] = " ".join(dpdata) def _prefill_custom_data(self): + + def _filter_args(items): + result = [] + stop = False + for item in items: + item = str(item).lower() + result.append(item) + if stop: + break + if item == "account": + stop = True + return result + caller_id = str(app.get_session_var("caller_id")) self['cd1'] = util.get_systype() self['cd2'] = "Python/%s %s" % (platform.python_version(), platform.platform()) + self['cd3'] = " ".join(_filter_args(sys.argv[1:])) self['cd4'] = 1 if (not util.is_ci() and (caller_id or not util.is_container())) else 0 if caller_id: @@ -109,7 +123,6 @@ class MeasurementProtocol(TelemetryBase): return _arg return None - self['cd3'] = " ".join([str(s).lower() for s in sys.argv[1:]]) if not app.get_session_var("command_ctx"): return ctx_args = app.get_session_var("command_ctx").args @@ -301,12 +314,15 @@ def on_event(category, action, label=None, value=None, screen_name=None): def on_exception(e): - skip = any([ + skip_conditions = [ isinstance(e, cls) for cls in (IOError, exception.AbortedByUser, - exception.NotGlobalLibDir, exception.InternetIsOffline) - ]) - if skip: + exception.NotGlobalLibDir, exception.InternetIsOffline, + exception.NotPlatformIOProject, + exception.UserSideException) + ] + skip_conditions.append("[API] Account: " in str(e)) + if any(skip_conditions): return is_crash = any([ not isinstance(e, exception.PlatformioException), diff --git a/platformio/vcsclient.py b/platformio/vcsclient.py index 3ef64fe1..b7c72ea1 100644 --- a/platformio/vcsclient.py +++ b/platformio/vcsclient.py @@ -19,7 +19,7 @@ from sys import modules from urlparse import urlparse from platformio import util -from platformio.exception import PlatformioException +from platformio.exception import PlatformioException, UserSideException class VCSClientFactory(object): @@ -64,7 +64,7 @@ class VCSClientBase(object): else: assert self.run_cmd(["--version"]) except (AssertionError, OSError, PlatformioException): - raise PlatformioException( + raise UserSideException( "VCS: `%s` client is not installed in your system" % self.command) return True