All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] devtool: add clean command
@ 2017-10-25 12:20 Josef Holzmayr
  2017-10-25 14:20 ` Leonardo Sandoval
  2017-10-25 22:51 ` Paul Eggleton
  0 siblings, 2 replies; 5+ messages in thread
From: Josef Holzmayr @ 2017-10-25 12:20 UTC (permalink / raw)
  To: paul.eggleton; +Cc: yocto

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3084 bytes --]

Add an idiomatic way to devtool to clean a recipe.

Signed-off-by: Josef Holzmayr <holzmayr@rsi-elektrotechnik.de>
---
 scripts/lib/devtool/clean.py | 48 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 scripts/lib/devtool/clean.py

diff --git a/scripts/lib/devtool/clean.py b/scripts/lib/devtool/clean.py
new file mode 100644
index 0000000..30f4044
--- /dev/null
+++ b/scripts/lib/devtool/clean.py
@@ -0,0 +1,48 @@
+# Development tool - clean command plugin
+#
+# Copyright (C) 2014-2015 Intel Corporation
+#               2017 R-S-I Elektrotechnik GmbH & Co. KG
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""Devtool clean plugin"""
+
+import bb
+from devtool import exec_build_env_command, check_workspace_recipe
+
+def _get_build_tasks(config):
+    tasks = config.get('Clean', 'clean_task', 'clean').split(',')
+    return ['do_%s' % task.strip() for task in tasks]
+
+def clean(args, config, basepath, workspace):
+    """Entry point for the devtool 'clean' subcommand"""
+
+    build_tasks = _get_build_tasks(config)
+    try:
+        bbargs = []
+        for task in build_tasks:
+            bbargs.append('%s:%s' % (args.recipename, task))
+        exec_build_env_command(config.init_path, basepath, 'bitbake %s' % ' '.join(bbargs), watch=True)
+    except bb.process.ExecutionError as e:
+        # We've already seen the output since watch=True, so just ensure we return something to the user
+        return e.exitcode
+
+    return 0
+
+def register_commands(subparsers, context):
+    """Register devtool subcommands from this plugin"""
+    parser_build = subparsers.add_parser('clean', help='Clean a recipe',
+                                         description='Cleans the specified recipe using bitbake',
+                                         group='working', order=50)
+    parser_build.add_argument('recipename', help='Recipe to clean')
+    parser_build.set_defaults(func=clean)
-- 
2.7.4


-- 
_____________________________________________________________
R-S-I Elektrotechnik GmbH & Co. KG
Woelkestrasse 11
D-85301 Schweitenkirchen
Fon: +49 8444 9204-0
Fax: +49 8444 9204-50
www.rsi-elektrotechnik.de

_____________________________________________________________
Amtsgericht Ingolstadt - GmbH: HRB 191328 - KG: HRA 170363
Geschäftsführer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg
USt-IdNr.: DE 128592548



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] devtool: add clean command
  2017-10-25 12:20 [PATCH] devtool: add clean command Josef Holzmayr
@ 2017-10-25 14:20 ` Leonardo Sandoval
  2017-10-25 14:24   ` Josef Holzmayr
  2017-10-25 22:51 ` Paul Eggleton
  1 sibling, 1 reply; 5+ messages in thread
From: Leonardo Sandoval @ 2017-10-25 14:20 UTC (permalink / raw)
  To: Josef Holzmayr; +Cc: paul.eggleton, yocto

[-- Attachment #1: Type: text/plain, Size: 3610 bytes --]



On Wed, Oct 25, 2017 at 7:20 AM, Josef Holzmayr 
<holzmayr@rsi-elektrotechnik.de> wrote:
> Add an idiomatic way to devtool to clean a recipe.

what I can see on the patch,  this does a bitbake -c clean 
<recipename>, right?

> 
> Signed-off-by: Josef Holzmayr <holzmayr@rsi-elektrotechnik.de>
> ---
>  scripts/lib/devtool/clean.py | 48 
> ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 48 insertions(+)
>  create mode 100644 scripts/lib/devtool/clean.py
> 
> diff --git a/scripts/lib/devtool/clean.py 
> b/scripts/lib/devtool/clean.py
> new file mode 100644
> index 0000000..30f4044
> --- /dev/null
> +++ b/scripts/lib/devtool/clean.py
> @@ -0,0 +1,48 @@
> +# Development tool - clean command plugin
> +#
> +# Copyright (C) 2014-2015 Intel Corporation
> +#               2017 R-S-I Elektrotechnik GmbH & Co. KG
> +#
> +# This program is free software; you can redistribute it and/or 
> modify
> +# it under the terms of the GNU General Public License version 2 as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License 
> along
> +# with this program; if not, write to the Free Software Foundation, 
> Inc.,
> +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> +"""Devtool clean plugin"""
> +
> +import bb
> +from devtool import exec_build_env_command, check_workspace_recipe
> +
> +def _get_build_tasks(config):
> +    tasks = config.get('Clean', 'clean_task', 'clean').split(',')
> +    return ['do_%s' % task.strip() for task in tasks]
> +
> +def clean(args, config, basepath, workspace):
> +    """Entry point for the devtool 'clean' subcommand"""
> +
> +    build_tasks = _get_build_tasks(config)
> +    try:
> +        bbargs = []
> +        for task in build_tasks:
> +            bbargs.append('%s:%s' % (args.recipename, task))
> +        exec_build_env_command(config.init_path, basepath, 'bitbake 
> %s' % ' '.join(bbargs), watch=True)
> +    except bb.process.ExecutionError as e:
> +        # We've already seen the output since watch=True, so just 
> ensure we return something to the user
> +        return e.exitcode
> +
> +    return 0
> +
> +def register_commands(subparsers, context):
> +    """Register devtool subcommands from this plugin"""
> +    parser_build = subparsers.add_parser('clean', help='Clean a 
> recipe',
> +                                         description='Cleans the 
> specified recipe using bitbake',
> +                                         group='working', order=50)
> +    parser_build.add_argument('recipename', help='Recipe to clean')
> +    parser_build.set_defaults(func=clean)
> --
> 2.7.4
> 
> 
> --
> _____________________________________________________________
> R-S-I Elektrotechnik GmbH & Co. KG
> Woelkestrasse 11
> D-85301 Schweitenkirchen
> Fon: +49 8444 9204-0
> Fax: +49 8444 9204-50
> www.rsi-elektrotechnik.de
> 
> _____________________________________________________________
> Amtsgericht Ingolstadt - GmbH: HRB 191328 - KG: HRA 170363
> Geschftsfhrer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg
> USt-IdNr.: DE 128592548
> 
> --
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto

[-- Attachment #2: Type: text/html, Size: 3957 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] devtool: add clean command
  2017-10-25 14:20 ` Leonardo Sandoval
@ 2017-10-25 14:24   ` Josef Holzmayr
  0 siblings, 0 replies; 5+ messages in thread
From: Josef Holzmayr @ 2017-10-25 14:24 UTC (permalink / raw)
  To: Leonardo Sandoval; +Cc: paul.eggleton, yocto

Hi!

On 25.10.2017 16:20, Leonardo Sandoval wrote:
> 
> 
> On Wed, Oct 25, 2017 at 7:20 AM, Josef Holzmayr 
> <holzmayr@rsi-elektrotechnik.de> wrote:
>> Add an idiomatic way to devtool to clean a recipe. 
> 
> what I can see on the patch,  this does a bitbake -c clean <recipename>, 
> right?
> 

In a nutshell and by default, yes. It sticks to the configurability that 
was already there in the build command, but in the end thats what it is 
meant to do in the vast majority of cases. The motivation is just that 
when using an eSDK, you don't have direct access to bitbake for 
triggering that task - which in turn is helpful in some application 
development situations,

Greetz
-- 
Josef Holzmayr
Software Developer Embedded Systems

Tel: +49 8444 9204-48
Fax: +49 8444 9204-50

R-S-I Elektrotechnik GmbH & Co. KG
Woelkestrasse 11
D-85301 Schweitenkirchen
www.rsi-elektrotechnik.de
———————————————
Amtsgericht Ingolstadt – GmbH: HRB 191328 – KG: HRA 170393
Geschäftsführer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg
Ust-IdNr: DE 128592548

_____________________________________________________________
Amtsgericht Ingolstadt - GmbH: HRB 191328 - KG: HRA 170363
Geschäftsführer: Dr.-Ing. Michael Sorg, Dipl.-Ing. Franz Sorg
USt-IdNr.: DE 128592548



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] devtool: add clean command
  2017-10-25 12:20 [PATCH] devtool: add clean command Josef Holzmayr
  2017-10-25 14:20 ` Leonardo Sandoval
@ 2017-10-25 22:51 ` Paul Eggleton
  2017-10-25 22:53   ` Paul Eggleton
  1 sibling, 1 reply; 5+ messages in thread
From: Paul Eggleton @ 2017-10-25 22:51 UTC (permalink / raw)
  To: Josef Holzmayr; +Cc: yocto

Hi Josef,

Looks good, just a couple of minor tweaks to be made:

On Thursday, 26 October 2017 1:20:39 AM NZDT Josef Holzmayr wrote:
> Add an idiomatic way to devtool to clean a recipe.

It would be worth noting that this is particularly important within the eSDK 
because you can't run bitbake -c clean directly there.

> Signed-off-by: Josef Holzmayr <holzmayr@rsi-elektrotechnik.de>
> ---
>  scripts/lib/devtool/clean.py | 48 +++++++++++++++++++++++++++++++++++++++++
+++
>  1 file changed, 48 insertions(+)
>  create mode 100644 scripts/lib/devtool/clean.py
> 
> diff --git a/scripts/lib/devtool/clean.py b/scripts/lib/devtool/clean.py
> new file mode 100644
> index 0000000..30f4044
> --- /dev/null
> +++ b/scripts/lib/devtool/clean.py
> @@ -0,0 +1,48 @@
> +# Development tool - clean command plugin
> +#
> +# Copyright (C) 2014-2015 Intel Corporation
> +#               2017 R-S-I Elektrotechnik GmbH & Co. KG
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License version 2 as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License along
> +# with this program; if not, write to the Free Software Foundation, Inc.,
> +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> +"""Devtool clean plugin"""
> +
> +import bb
> +from devtool import exec_build_env_command, check_workspace_recipe
> +
> +def _get_build_tasks(config):

This function should really be called "_get_clean_tasks".

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] devtool: add clean command
  2017-10-25 22:51 ` Paul Eggleton
@ 2017-10-25 22:53   ` Paul Eggleton
  0 siblings, 0 replies; 5+ messages in thread
From: Paul Eggleton @ 2017-10-25 22:53 UTC (permalink / raw)
  To: Josef Holzmayr; +Cc: yocto

On Thursday, 26 October 2017 11:51:07 AM NZDT Paul Eggleton wrote:
> Hi Josef,
> 
> Looks good, just a couple of minor tweaks to be made:
> 
> On Thursday, 26 October 2017 1:20:39 AM NZDT Josef Holzmayr wrote:
> > Add an idiomatic way to devtool to clean a recipe.
> 
> It would be worth noting that this is particularly important within the eSDK 
> because you can't run bitbake -c clean directly there.
> 
> > Signed-off-by: Josef Holzmayr <holzmayr@rsi-elektrotechnik.de>
> > ---
> >  scripts/lib/devtool/clean.py | 48 +++++++++++++++++++++++++++++++++++++++
++
> +++
> >  1 file changed, 48 insertions(+)
> >  create mode 100644 scripts/lib/devtool/clean.py
> > 
> > diff --git a/scripts/lib/devtool/clean.py b/scripts/lib/devtool/clean.py
> > new file mode 100644
> > index 0000000..30f4044
> > --- /dev/null
> > +++ b/scripts/lib/devtool/clean.py
> > @@ -0,0 +1,48 @@
> > +# Development tool - clean command plugin
> > +#
> > +# Copyright (C) 2014-2015 Intel Corporation
> > +#               2017 R-S-I Elektrotechnik GmbH & Co. KG
> > +#
> > +# This program is free software; you can redistribute it and/or modify
> > +# it under the terms of the GNU General Public License version 2 as
> > +# published by the Free Software Foundation.
> > +#
> > +# This program is distributed in the hope that it will be useful,
> > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > +# GNU General Public License for more details.
> > +#
> > +# You should have received a copy of the GNU General Public License along
> > +# with this program; if not, write to the Free Software Foundation, Inc.,
> > +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> > +"""Devtool clean plugin"""
> > +
> > +import bb
> > +from devtool import exec_build_env_command, check_workspace_recipe
> > +
> > +def _get_build_tasks(config):
> 
> This function should really be called "_get_clean_tasks".

I didn't notice until I hit send but this patch should go to the oe-core list, 
if you could send v2 there that would be great.

Thanks,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-10-25 22:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-25 12:20 [PATCH] devtool: add clean command Josef Holzmayr
2017-10-25 14:20 ` Leonardo Sandoval
2017-10-25 14:24   ` Josef Holzmayr
2017-10-25 22:51 ` Paul Eggleton
2017-10-25 22:53   ` Paul Eggleton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.