BugHelp wantedUp-for-grabs
Description
What You Are Seeing?
Using something like:
Zip(Directory("d"), File("test.zip"));
The zip file contents are correct, but linux file permissions (ugoa rwx) are not preserved within the zip file, when run on Linux.
What is Expected?
I should be able to list the zip file contents using unzip -Zl and see the linux file permissions that were set before zipping.
What version of Cake are you using?
dotnet core cake.tool version '0.34.1'
Are you running on a 32 or 64 bit system?
64 bit
What environment are you running on? Windows? Linux? Mac?
Linux
Are you running on a CI Server? If so, which one?
Yes, but I see the same results running locally.
How Did You Get This To Happen? (Steps to Reproduce)
- Create a script file on Linux:
mkdir d
echo '#!/bin/bash' > d/test.sh
echo "echo foo" >> d/test.sh
chmod a+x d/test.sh
- Write a build.cake script to zip the directory:
Zip(Directory("d"), File("test.zip"));
- Install the cake.tool
dotnet tool install -g cake.tool
- Run the cake script
dotnet cake
- Check the contents of the zipped file:
$ unzip -Zl test.zip
Archive: test.zip
Zip file size: 135 bytes, number of entries: 1
?--------- 2.0 unx 21 b- 23 defN 19-Aug-05 14:13 test.sh
1 file, 21 bytes uncompressed, 23 bytes compressed: -9.5%
In contrast, if the zip file is created with the linux zip command (infozip), the file contents are:
$ unzip -Zl linux-test.zip
Archive: linux-test.zip
Zip file size: 185 bytes, number of entries: 1
-rwxrwxrwx 3.0 unx 21 tx 21 stor 19-Aug-05 14:13 test.sh
1 file, 21 bytes uncompressed, 21 bytes compressed: 0.0%
which shows that the file permissions are preserved in the zip file.