On 04/05/2013 09:20 AM, Chris Larson wrote:
>
> On Fri, Apr 5, 2013 at 6:55 AM, Jason Wessel <jason.wes...@windriver.com 
> <mailto:jason.wes...@windriver.com>> wrote:
>
>     On 04/04/2013 07:44 PM, Christopher Larson wrote:
>     > From: Christopher Larson <chris_lar...@mentor.com 
> <mailto:chris_lar...@mentor.com>>
>     >
>     > This adds two new Terminal classes. It's separated into two, so that 
> opening
>     > a split inside a tmux window is preferred to the other terminal types, 
> but
>     > opening a tmux session is prioritized only slightly higher than screen.
>     >
>     > - tmuxrunning: Open a new pane in the current running tmux window. 
> Requires
>     >   that the TMUX variable be added to the env whitelist to use it.
>     > - tmux: Open a new tmux session
>     >
>     > Signed-off-by: Christopher Larson <chris_lar...@mentor.com 
> <mailto:chris_lar...@mentor.com>>
>     > ---
>     >  meta/lib/oe/terminal.py | 38 ++++++++++++++++++++++++++++++++++++++
>     >  1 file changed, 38 insertions(+)
>     >
>     > diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py
>     > index 2e23d59..e52863f 100644
>     > --- a/meta/lib/oe/terminal.py
>     > +++ b/meta/lib/oe/terminal.py
>     > @@ -142,6 +142,44 @@ class TmuxNewSession(Terminal):
>     >          else:
>     >              logger.warn(msg)
>     >
>     > +class TmuxRunning(Terminal):
>     > +    """Open a new pane in the current running tmux window"""
>     > +    name = 'tmux-running'
>     > +    command = 'tmux split-window {command}'
>     > +    priority = 2.75
>     > +
>     > +    def __init__(self, sh_cmd, title=None, env=None, d=None):
>     > +        if not bb.utils.which(os.getenv('PATH'), 'tmux'):
>     > +            raise UnsupportedTerminal('tmux is not installed')
>     > +
>     > +        if not os.getenv('TMUX'):
>     > +            raise UnsupportedTerminal('tmux is not running')
>     > +
>     > +        Terminal.__init__(self, sh_cmd, title, env, d)
>
>
>     When we chatted yesterday I didn't fully understand how the Tmux Running 
> piece worked.   Now I get it, you run tmux and then start a build with in 
> that session and just join back to it when the TMUX var is set because that 
> is how TMUX does internal communications setup.  I have to admit that is 
> pretty slick. :-)
>
>     It seems to me we can just fold these two classes together and drive it 
> off the TMUX variable.   This way we can just have one OE TERMINAL type, and 
> if you don't want the behavior to engage of the "split" you just unset TMUX 
> before you build.   I believe that this covers all the cases you care about, 
> and would allow for the simplistic case I care about where I just set 
> OE_TERMINAL=tmux to work for both cases. I would recommend we just patch up 
> the bitbake.conf BBHASH pieces all in one shot with this patch so their is 
> nothing special anyone has to do to make use of this.
>
>     Would you be ok with that?
>
>     Further work that I'll probably consider doing if no one else does it 
> first is to add tmux-native so we always have it as the fall back for getting 
> to patch failures and such on a remote build server.
>
>
> The problem with combining them is they'd be stuck at the same priority, 
> which makes 'auto' less useful. In the case where DISPLAY and TMUX are both 
> set, I think it makes more sense to prefer to interact with the running tmux 
> session rather than spawning a new xterm, yet spawning a new tmux session 
> should be kept at the same priority as screen to meet user expectations.
>
> A decent compromise, to make the explicit OE_TERMINAL=tmux case more useful, 
> would be to merge the tmuxrunning bits into tmux, but still keep the 
> independent tmuxrunning class for the 'auto' case. Thoughts on that?


Based on how the auto list processing works your latest proposed solution seems 
like the most reasonable choice.

Thanks,
Jason.
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to