[Vm-dev] Squeak FileAttributes (was: FilePlugin>>primitiveFileStdioHandles fails incorrectly?)
akgrant0710 at gmail.com
Thu Aug 9 14:15:40 UTC 2018
On Thu, 9 Aug 2018 at 10:37, Alistair Grant <akgrant0710 at gmail.com> wrote:
> > BTW, is there any image level source code available for accessing the FileAttributesPlugin's primitives? This is lazy of me, but if there is could you email me a pointer to the code or the code itself asap? TIA
> > P.S> I'm specifically looking for code to implement testing directory writability in Squeak.
> OK, just a warning in advance: The code (VM and image) works fine on
> Linux and Windows. I didn't know about the Mac file encoding quirks
> until recently, so need to change the plugin to work properly on Mac
> OS. But I haven't got the VM to compile on my Mac virtualbox machine,
> so the changes are still local to my PC. This won't affect you unless
> you've got non-ascii characters in your file names. I should have
> fixed this by now, but the problems compiling on Mac have frustrated
> me, and I've had very little time (personal reasons).
> The main repository for the image side file attributes code is at:
> If you're not comfortable with git I think figuring out the changes
> will be difficult. I've got a .cs from a slightly earlier revision
> which I can email you - probably directly, it's 93Kb.
> I'll try and put together a change set which just includes enough code
> to get file attributes.
> Any other questions, of course please let me know.
I'll reply to this with a change set that should get you started.
Disclaimer: I've thrown this together in about half an hour and
checked that I can get directory permissions. Anything (and probably
everything :-)) else could fail.
The squeak VM I have doesn't include the FileAttributesPlugin. To get
going I simply copied FileAttributesPlugin.so from my Pharo VM (this
is on Ubuntu 16.04 (I know, bad practice, but no time to build a new
VM right now)).
Once you've filed in the change set you should be able to:
1. FileAttributesPrimitives fileAttributesVersionString "'1.3.2'"
2. (DiskDirectoryEntry reference: '/bin') isWritable "false"
3. (DiskDirectoryEntry reference: '/home/myhomedir') isWritable "true"
DiskDirectoryEntry normally expects to hold a FileReference in Pharo.
I've hacked it enough to accept a string instead.
Sorry for the lack of testing, but wanted to try and get at least
something to you. I hope to have some more time tonight to tidy this
up if you want, or answer any other questions.
More information about the Vm-dev