Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Joshua Lock <josh@linux.intel.com>
To: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/4] lib/oe/terminal: add support for XFCE's terminal emulator
Date: Mon, 31 Oct 2011 10:09:49 -0700	[thread overview]
Message-ID: <4EAED65D.8060205@linux.intel.com> (raw)
In-Reply-To: <CABcZANkS9zDK-qLtMxHdn7SE29vTz+HPMwCUtf=yP-uuGV=Dtg@mail.gmail.com>



On 28/10/11 17:56, Chris Larson wrote:
> On Fri, Oct 28, 2011 at 4:42 PM, Joshua Lock <josh@linux.intel.com> wrote:
>> That's Terminal on Fedora and xfce4-terminal on Ubuntu/Debian... This
>> could get interesting!
>>
>> Signed-off-by: Joshua Lock <josh@linux.intel.com>
>> ---
>>  meta/lib/oe/terminal.py |   21 +++++++++++++++++++++
>>  1 files changed, 21 insertions(+), 0 deletions(-)
>>
>> diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py
>> index 1455e8e..b90a1f2 100644
>> --- a/meta/lib/oe/terminal.py
>> +++ b/meta/lib/oe/terminal.py
>> @@ -57,6 +57,27 @@ class Gnome(XTerminal):
>>     command = 'gnome-terminal --disable-factory -t "{title}" -x {command}'
>>     priority = 2
>>
>> +class Xfce(XTerminal):
>> +    def distro_name():
>> +        import subprocess as sub
>> +        try:
>> +            p = sub.Popen(['lsb_release', '-i'], stdout=sub.PIPE,
>> +                          stderr=sub.PIPE)
>> +            out, err = p.communicate()
>> +            distro = out.split(':').strip()
>> +        except:
>> +            distro = "unknown"
>> +        return distro
>> +
>> +    # Upstream binary name is Terminal but Debian/Ubuntu use
>> +    # xfce4-terminal to avoid possible(?) conflicts
>> +    distro = distro_name()
>> +    if distro == 'Ubuntu' or distro == 'Debian':
>> +        command = 'xfce4-terminal -T "{title}" -e "{command}"'
>> +    else:
>> +        command = 'Terminal -T "{title}" -e "{command}"'
>> +    priority = 2
> 
> The first problem I see with this is you're calling lsb_release at
> module import time. Doing things like that is generally a no-no. I'd
> suggest shifting it into the constructor. Set up the command there as
> self.command, and be sure to call the superclass constructor as well,
> after the command bits. The other thing is, and I'm sure you just
> copied & pasted it from konsole, but we already import a fully
> functional Popen -- it's the superclass of all the terminal classes.
> So there's no need to pull in subprocess's version of it. And the
> defaults of the Popen we use ensure the output is captured, so there's
> no need for the sub.PIPE bits at all if you use that one. Simply do p
> = Popen(['lsb_release', '-i']).

Thanks for the feedback Chris. I'll roll your suggestions into a v2 today.

> 
> Thanks for adding this, I'm sure folks using stock Xubuntu and the
> like will find this helpful (I'm an rxvt-unicode guy myself).

I figured that DE would be getting more popular, hence throwing a patch
together.

Cheers,
Joshua
-- 
Joshua Lock
        Yocto Project "Johannes factotum"
        Intel Open Source Technology Centre



  reply	other threads:[~2011-10-31 17:15 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-28 23:41 [PATCH 0/4] Misc patches Joshua Lock
2011-10-28 23:42 ` [PATCH 1/4] lib/oe/terminal: add support for XFCE's terminal emulator Joshua Lock
2011-10-29  0:56   ` Chris Larson
2011-10-31 17:09     ` Joshua Lock [this message]
2011-10-28 23:42 ` [PATCH 2/4] libxslt: Fix packaging of xsltConf.sh Joshua Lock
2011-10-28 23:42 ` [PATCH 3/4] libcanberra: add new package for unpackaged files Joshua Lock
2011-10-28 23:42 ` [PATCH 4/4] clutter-gtk: add LIC_FILES_CHKSUM to include file Joshua Lock
2011-10-31 10:49 ` [PATCH 0/4] Misc patches Richard Purdie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EAED65D.8060205@linux.intel.com \
    --to=josh@linux.intel.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox