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 <mailto: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