Do you need the string-equality (streq) hack I’ve mentioned in my kakscript computability post)?
def list-len-eq0 -params 0 nop # empty-list test
decl str-list str_test
def streq -params 2 %{
set global str_test %arg{1}
set -remove global str_test %arg{2}
list-len-eq0 %opt{str_test}
}
Then, you can if-then-else via exceptions:
try %{ streq %arg{1} %opt{toolsclent}
#then code
} catch %{
#else code
}
This is how I defined the +=ssl alias (aka sel-editor-live-new) in sel-editor. If toolsclient is not defined, it automatically resets to %val{client}.
You also probably need a ClientClose hook (I haven’t added added this yet to sel-editor) to remove the toolsclient setting if, well, the toolsclient closes.
My post also details a way to check for a specific exception, so you can make your if-then-else foolproof.
Final note: if you use this, please add a “namespace prefix” to all commands, so they don’t collide with other plugins.