Distinguishing CLI from GUI
Warren Samples
warren at warrensweb.us
Mon Jun 13 12:51:09 EDT 2011
On Monday, June 13, 2011 07:41:32 AM Richard Gaskin wrote:
> As Todd Geist quoted here earlier, in the Dictionary entry for "$" it says:
>
> If you start up the application from the command line (on OS X,
> Unix or Windows systems), the command name is stored in the
> global variable $0 and any arguments passed on the command line
> are stored in numbered variables starting with the $ character.
> For example, if you start the application by typing the following
> shell command:
>
> myrevapp -h name
>
> then the global variable $0 contains "myrevapp" (the name of the
> application), $1 contains "-h", and $2 contains "name".
>
> In my tests here, it seems this is only partially correct: $0 contains
> the app name from the command line ("myrevapp" in their example), but $1
> contains the "name" portion after the "-h" option flag, and the flag
> itself does not appear in any $ variable.
>
> I have an app in which I'd like to have two different behaviors,
> depending on whether it's being run from the command-line or as a GUI.
>
> This would be easy if the engine worked as described in the Dictionary
> so I could easily detect if the user launched it with "-ui", but it
> seems the option flags are not being passed to the application, though
> everything that doesn't begin with "-" is.
>
> So my question is two-fold:
>
> 1. I've tested this on Windows and Linux and get identical behavior, in
> which the "-" flags aren't present in the "$" vars. Can anyone here
> confirm this on Linux, Win, or OS X?
>
> 2. If this is indeed a documentation bug and what I see in my tests is
> what happens for everyone, how can I determine whether the app was
> launched with "-ui" or not?
>
> --
> Richard Gaskin
> Fourth World
> LiveCode training and consulting: http://www.fourthworld.com
> Webzine for LiveCode developers: http://www.LiveCodeJournal.com
> LiveCode Journal blog: http://LiveCodejournal.com/blog.irv
>
Richard,
It seems to be working here although certain letters seem not to be usable. For example -s does not work. I
can get an answer dialog to return "-h" when used as a cl flag and the app will do something if there is a
variable $x which equals -h.
as a silly example, this script does exactly what it looks like it should:
on openstack
answer $0 && $1 && $2 && $3 && $4 && $5
if $1 is "-h" then answer "hooboy, it works"
end openstack
using this command: '/myApp -h a-param -o some-param' answers "/myApp -h a-param -o some-param" and then
answers "hooboy, it works".
openSUSE 11.4 with Bash.
Regards,
Warren
More information about the use-livecode
mailing list