diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py index 2e49a09365..f9aca42b37 100644 --- a/bitbake/lib/bb/build.py +++ b/bitbake/lib/bb/build.py @@ -91,6 +91,9 @@ class TaskBase(event.Event): class TaskStarted(TaskBase): """Task execution started""" + def __init__(self, t, logfile, taskflags, d): + super(TaskStarted, self).__init__(t, logfile, d) + self.taskflags = taskflags class TaskSucceeded(TaskBase): """Task execution completed""" @@ -422,7 +425,9 @@ def _exec_task(fn, task, d, quieterr): localdata.setVar('BB_LOGFILE', logfn) localdata.setVar('BB_RUNTASK', task) - event.fire(TaskStarted(task, logfn, localdata), localdata) + flags = localdata.getVarFlags(task) + + event.fire(TaskStarted(task, logfn, flags, localdata), localdata) try: for func in (prefuncs or '').split(): exec_func(func, localdata) diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index 5881d136c2..4996b4235d 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py @@ -483,6 +483,8 @@ class BuildInfoHelper(object): task_information['outcome'] = Task.OUTCOME_EXISTING else: task_information['task_executed'] = True + if 'noexec' in vars(event) and event.noexec == True: + task_information['script_type'] = Task.CODING_NOEXEC self.task_order += 1 task_information['order'] = self.task_order @@ -506,8 +508,9 @@ class BuildInfoHelper(object): if '_message' in vars(event): task_information['message'] = event._message - if 'ispython' in vars(event): - if event.ispython: + if 'taskflags' in vars(event): + # with TaskStarted, we get even more information + if 'python' in event.taskflags.keys() and event.taskflags['python'] == '1': task_information['script_type'] = Task.CODING_PYTHON else: task_information['script_type'] = Task.CODING_SHELL diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py index cb6581c9e1..53b9e3a024 100644 --- a/bitbake/lib/toaster/orm/models.py +++ b/bitbake/lib/toaster/orm/models.py @@ -74,10 +74,12 @@ class Task(models.Model): (SSTATE_RESTORED, 'Restored'), # succesfully restored ) - CODING_PYTHON = 0 - CODING_SHELL = 1 + CODING_NOEXEC = 0 + CODING_PYTHON = 1 + CODING_SHELL = 2 TASK_CODING = ( + (CODING_NOEXEC, 'NoExec'), (CODING_PYTHON, 'Python'), (CODING_SHELL, 'Shell'), ) @@ -108,7 +110,7 @@ class Task(models.Model): task_name = models.CharField(max_length=100) source_url = models.FilePathField(max_length=255, blank=True) work_directory = models.FilePathField(max_length=255, blank=True) - script_type = models.IntegerField(choices=TASK_CODING, default=CODING_PYTHON) + script_type = models.IntegerField(choices=TASK_CODING, default=CODING_NOEXEC) line_number = models.IntegerField(default=0) disk_io = models.IntegerField(null=True) cpu_usage = models.DecimalField(max_digits=6, decimal_places=2, null=True)