Am 06.08.2013 01:20, schrieb Adam Murdoch:
> 
> On 05/08/2013, at 9:20 PM, Harald Schmitt <li...@hschmitt.de
> <mailto:li...@hschmitt.de>> wrote:
> 
>> Hi,
>>
>> I did a first try to support symbolic links when using tarTree() for
>> untar.
>> https://github.com/gradle/gradle/pull/182
>> For the other way round, I realized that there are some bits missing, to
>> implement support for symbolic links with the Tar task type.
>> The interface Symlink
>> https://github.com/gradle/gradle/blob/master/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/Symlink.java
>> needs two more functions
>> public boolean isSymlink(File linkCandidate);
>> public RelativePath symlinkTarget(File link);
>>
>> Determining whether it is a symbolic link could be achieved with pure
>> java code as the ANT class SymbolicLinkUtils does it, but it could be
>> much faster using native tools.
>> But to query the target relative path , I don't know whether this can be
>> done in java?
>>
>> I'd need someone to implement the native part. Is there someone willing?
>> Is this something that will go into gradle?
> 
> The native toolkit that we use
> (https://github.com/adammurdoch/native-platform) already has some
> support for symlinks. It's missing a method to detect if a file is a
> symlink, but I can add that. It might take me a few days to get it done,
> though.
> 
> We can also use the Java 7 file attributes stuff to determine if a file
> is a symbolic link. There's also the trick where we can use
> File.getCanonicalFile() to determine if something is a symlink or not.
> 
> What you could do to get started is to add the methods that you need on
> Symlink with dummy implementations or implementations that only work on
> Java 7 or that use the Ant stuff for now. Then you can continue on with
> the Tar stuff while I add the native support in the native toolkit and
> wire it in.
The native toolkit you are referring is not used for symlinks in gradle
at the moment, but it makes sense to switch to it.

I already did integration tests, unit tests and implementation with some
dummy stuff in it.
https://github.com/surfing/gradle/tree/tar-rc-1

Best regards,
Harald Schmitt

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to