The intent of the getFilename hook is to provide the developer with a way to specify and override the filename for a given apl object. At the moment this hook is also invoked when there is a new file created in the filesystem. Unfortunately the filename provided into the hook (the 3rd item) doesn't match the actual path where the file was created (the first time it is invoked, see below repro) if the -flatten option is used.
I would like to potentially override the directory that the file is created in when a new object is created in the session, but not move a file that was placed in the filesystem. It would be good to be able to tell the difference (was this triggered because of a new item in session or filesystem), but at the very least, if the filename was correct I could check if it exists.
The intent of the
getFilename
hook is to provide the developer with a way to specify and override the filename for a given apl object. At the moment this hook is also invoked when there is a new file created in the filesystem. Unfortunately the filename provided into the hook (the 3rd item) doesn't match the actual path where the file was created (the first time it is invoked, see below repro) if the-flatten
option is used.I would like to potentially override the directory that the file is created in when a new object is created in the session, but not move a file that was placed in the filesystem. It would be good to be able to tell the difference (was this triggered because of a new item in session or filesystem), but at the very least, if the filename was correct I could check if it exists.
To Reproduce )clear clear ws 3⎕NDELETE 'test'
3⎕mkdir'test/sub'
fileHandler←{''⊣⎕←⍵}
]link.create -flatten -getfilename=#.fileHandler #.test ./test Linked: #.test ←→ /Users/gil/test (⊂'r←foo' 'r←42')⎕NPUT 'test/sub/foo.aplf'
getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo getFilename [#.test ←→ /Users/gil/test] /Users/gil/test/sub/foo.aplf #.test.foo 3.1 #.test.foo
Expected behaviour The filename should be correct on the first invokation, like it is in the following.
Desktop (please complete the following information): IDE: Version: 4.4.3726 Electron: 13.6.9 Chrome: 91.0.4472.164 Node: 14.16.0 Platform: MacIntel
⎕SE.Link.Version
: 3.0.19