Rachel, thanks again for weighing in. I'm a little confused and was hoping to ask you for clarification. Earlier in this thread, you use a File approach and it seemed to work. Why did you mention in the follow-up comment that it doesn't actually work? Why did it work the first time, but not the second time? Was it because in the first case you were using the groovy command line interpreter, and in the second case that failed you tried to run from inside a Groovy script, maybe? Or was it something else I'm missing entirely? - - - Jim Mc.
On Wed, Oct 20, 2021 at 7:35 AM Rachel Greenham <rac...@merus.eu> wrote: > ah sadly i did think of that when i was writing it but it didn't work. Not > 100% sure why, but i think mostly that many of those methods in Files take > a varargs of stuff like LinkOption... OpenOption... and the groovy category > support isn't resolving properties past that. > > -- > Rachel Greenham > rac...@merus.eu > > On 20 Oct 2021, at 11:55, MG <mg...@arscreat.com> wrote: > > Don't know if you already know this, but using Groovy property syntax > makes code even more readable, e.g.: > > println "${it}: ${it.getOwner()} ${it.getPosixFilePermissions()}" > > can be written as: > > println "$it: $it.owner $it.posixFilePermissions" > > In general: > 1. Any getter can be accessed without the "get" prefix with a lowercase > first char > 2. A simplified string interpolation syntax without the enclosing curly > braces can be used in these cases > (same goes for setters) > > Cheers, > mg > > > On 20/10/2021 12:14, James McMahon wrote: > > Many thanks to each of you who offered guidance. Redirecting back to this > today, anticipating success given your advice. Still getting a feel for > Groovy so this helps quite a bit. > Cheers, > -Jim > > On Fri, Oct 15, 2021 at 11:22 AM Søren Berg Glasius <soe...@glasius.dk> > wrote: > >> @Rachel Rudnick <rac...@cirrusidentity.com> that is a very clever use of >> *use* - good call! >> >> Best regards / Med venlig hilsen, >> Søren Berg Glasius >> >> Hedevej 1, Gl. Rye, 8680 Ry, Denmark >> Mobile: +45 40 44 91 88, Skype: sbglasius >> --- Press ESC once to quit - twice to save the changes. >> >> >> Den fre. 15. okt. 2021 kl. 17.12 skrev Rachel Greenham <rac...@merus.eu>: >> >>> Looks like you could pretty much use Files as an extension module and/or >>> category for Path... >>> >>> Hang on, does it work? >>> >>> groovy> import java.nio.file.* >>> groovy> use (Files) { >>> groovy> Path p = Path.of("src/groovy") >>> groovy> println "is directory? ${p.isDirectory()}" >>> groovy> p.list().each { println "${it}: ${it.getOwner()} >>> ${it.getPosixFilePermissions()}" } >>> groovy> } >>> >>> is directory? true >>> src/groovy/benchmark: rachel [OWNER_WRITE, OTHERS_READ, OWNER_EXECUTE, >>> GROUP_READ, GROUP_EXECUTE, OTHERS_EXECUTE, OWNER_READ] >>> src/groovy/xdocs: rachel [OWNER_WRITE, OTHERS_READ, OWNER_EXECUTE, >>> GROUP_READ, GROUP_EXECUTE, OTHERS_EXECUTE, OWNER_READ] >>> src/groovy/bootstrap: rachel [OWNER_WRITE, OTHERS_READ, OWNER_EXECUTE, >>> GROUP_READ, GROUP_EXECUTE, OTHERS_EXECUTE, OWNER_READ] >>> src/groovy/LICENSE: rachel [OWNER_WRITE, OTHERS_READ, GROUP_READ, >>> OWNER_READ] >>> ... >>> >>> oh yeah that works 😉 >>> >>> -- >>> Rachel Greenham >>> rac...@merus.eu >>> >>> > On 15 Oct 2021, at 15:57, Nelson, Erick <erick.nel...@hdsupply.com> >>> wrote: >>> > >>> > import java.nio.file.Path >>> > import java.nio.file.Files >>> > >>> > File f = new File('test') >>> > Path p = f.toPath() >>> > Files.isReadable(p) // boolean >>> > Files.isWritable(p) // boolean >>> > Files.isExecutable(p) // boolean >>> > Files.isDirectory(p) // boolean >>> > Files.isRegularFile(p) // boolean >>> > >>> > >>> > From: James McMahon <jsmcmah...@gmail.com> >>> > Date: Friday, October 15, 2021 at 4:50 AM >>> > To: users@groovy.apache.org <users@groovy.apache.org> >>> > Subject: Checking directory state using Groovy >>> > >>> > Hello. I am trying to convert an existing script from python to >>> Groovy. It executes a number of os.path and os.access commands, which I've >>> not yet been able to find examples of that are written in Groovy. I have >>> found similar implementations that employ "add on" Jenkins libraries for >>> Groovy, but I will not have access to such libraries.Here is a brief >>> excerpt from what I now do in python. Has anyone done similarly in Groovy? >>> Can I impose for an example? >>> > >>> > Thanks very much in advance. Here is my python: >>> > >>> > if ( os.path.exists(result['thisURL']) and >>> os.path.isfile(result['thisURL']) ) : >>> > if ( os.access(result['thisURL'], os.F_OK) >>> > and os.access(result['thisURL'], os.R_OK) >>> > and os.access(thisDri, os.W_OK) >>> > and os.access(thisDir, os.X_OK) ) : >>> > # do some stuff >>> > else : >>> > # dir and file not accessible, do some different stuff >>> >>> > >