I found that getscripts assume script name without '.' and not part of
PUBLIC to be under ~addons As reproduced using an executable script
jtest1:
#/path/to/jconsole
exit 0
If this is invoked with ./jtest1 or the name changed to jtest1.j so
that there is a '.' then it run ok. However if that is invoked just
by jtest1 (jtest1 inside $PATH) then getscripts verb will change the
name to something
.../addons//.../jtest1.ijs
I suggest changing getscripts so that it actually match files inside
~addons otherwise leaves y unchanged. Or alternatively change
behavior of #! script to use 0!:0 instead of script_z_ for execution.
getscripts=: 3 : 0
if. 0=#y do. '' return. end.
if. 0=L.y do.
if. fexist y do.
y=. <y
else.
y=. cutnames y
end.
end.
if. 0=#y do. '' return. end.
ndx=. ({."1 PUBLIC) i. y
ind=. I. ndx < # PUBLIC
y=. ((ind { ndx) { 1 {"1 PUBLIC) ind } y
ind=. (i.#y) -. ind
if. #ind do. <==== fallen inside this loop
sel=. ind { y
msk=. -. '.' e. &> sel <=== check for any '.' inside script pathname
cnt=. +/ &> sel e. each <'/\'
ndx=. ind #~ msk *. cnt=1
y=. (addfname each ndx { y) ndx } y
ndx=. ind #~ msk *. cnt > 0
sel=. (<'~addons/') ,each (ndx{y) ,each <'.ijs' <==== this line
y=. sel ndx } y
end.
fullname each jpath each y
)
--
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm