git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] mergetool: make Apple's FileMerge available as a merge_tool

From
SLScott Lamb <slamb@slamb.org>
Date
Jun 18, 2007, 09:39 UTC
Message-ID
<467652BC.4050900@slamb.org>
In-Reply-To
<42FEB11E-426D-4B44-9E7E-0E35032CB1B0@zib.de>
Steffen Prohaska wrote:
Show 23 quoted lines
> 
> On Jun 17, 2007, at 8:12 PM, Theodore Tso wrote:
>> Do you know of a way of determining whether or not under MacOS X, a
>> program can easily determine whether or not the user is sitting in
>> front of the graphical display, as opposed to coming in via an SSH
>> connection?
> 
> this might do the job:
> 
> --- SNIP ---
> #! /bin/sh
> 
> pid=$$
> 
> while [ $pid -ne 1 ] ; do
>     command=$(ps -p $pid | tail -n 1 | cut -b 27-)
>     echo $command | grep -q sshd && { echo "ssh" ; exit ; }
>     echo $command | grep -q Terminal && { echo "local" ; exit ; }
>     pid=$(ps -O ppid -p $pid | tail -n 1 | cut -b 6-11)
> done
> 
> echo "unknown"
> --- SNIP ---
I propose a simpler test:
    if [ -n "$TERM_PROGRAM" ]; then
        echo local
    else
        echo remote
    fi

This environment variable seems to be set by Terminal.app and even two alternatives I just tried (iTerm.app and GLterm.app). It's not transmitted across ssh unless you stick an AcceptEnv in sshd_config.

About the only time it would fail is logging in via local xterm. I'd guess few people do that, and determining if xterm is local or not seems infeasible - the best I've got is examining DISPLAY, but where do you draw the line between :0.0 or localhost:0 (probably local), foobar:0 (probably remote), and :10 (probably remote via ssh forwarding)? I'd rather not try.

-- 
Scott Lamb <http://www.slamb.org/>
Previous: Steffen ProhaskaNext: Theodore Tso
Message 5 of 6 in “mergetool: make Apple's FileMerge available as a merge_tool”
  1. mergetool: make Apple's FileMerge available as a merge_toolSteffen Prohaska, Jun 17, 2007
  2. Steffen ProhaskaJun 17, 2007
  3. Theodore TsoJun 17, 2007
  4. Steffen ProhaskaJun 17, 2007
  5. Scott LambJun 18, 2007
  6. Theodore TsoJun 18, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.