Very cool - thank you MG. No, I sure don't yet know the finer points such
as that which you mention. I think I've blindly adopted code examples from
Groovy scripts out on the internet that are similar, often not really
understanding. I still have so much to learn about Groovy. As best as I can
tell so far, Groovy appears to be java based, with refinements and
enhancements.

One thing I've been thinking about recently is whether these refinements
always make things easier to read and maintain, or more cryptic and
difficult? Some groovy things I've seen sometimes make it a little more
difficult to unwrap what the code is doing. But as I said, I suspect that's
more a function of my lack of experience rather than a Groovy problem.

This users group is very helpful. Thank you all again.
Cheers,
Jim

On Wed, Oct 20, 2021 at 6:55 AM 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
>>>
>>>
>

Reply via email to