|
40 | 40 |
|
41 | 41 | import org.codehaus.plexus.archiver.manager.ArchiverManager;
|
42 | 42 | import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
|
| 43 | +import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils; |
43 | 44 | import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
|
44 | 45 | import org.codehaus.plexus.components.io.attributes.SimpleResourceAttributes;
|
45 | 46 | import org.codehaus.plexus.components.io.functions.ResourceAttributeSupplier;
|
@@ -364,9 +365,20 @@ public void addFileSet(@Nonnull final FileSet fileSet) throws ArchiverException
|
364 | 365 |
|
365 | 366 | @Override
|
366 | 367 | public void addFile(@Nonnull final File inputFile, @Nonnull final String destFileName) throws ArchiverException {
|
367 |
| - final int fileMode = getOverrideFileMode(); |
| 368 | + int permissions; |
| 369 | + if (forcedFileMode > 0) { |
| 370 | + permissions = forcedFileMode; |
| 371 | + } else { |
| 372 | + permissions = PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE; |
| 373 | + try { |
| 374 | + permissions = PlexusIoResourceAttributeUtils.getFileAttributes(inputFile) |
| 375 | + .getOctalMode(); |
| 376 | + } catch (IOException ioe) { |
| 377 | + // ignore |
| 378 | + } |
| 379 | + } |
368 | 380 |
|
369 |
| - addFile(inputFile, destFileName, fileMode); |
| 381 | + addFile(inputFile, destFileName, permissions); |
370 | 382 | }
|
371 | 383 |
|
372 | 384 | @Override
|
@@ -462,6 +474,10 @@ public void addFile(@Nonnull final File inputFile, @Nonnull String destFileName,
|
462 | 474 | permissions = getOverrideFileMode();
|
463 | 475 | }
|
464 | 476 |
|
| 477 | + if (umask > 0 && permissions != PlexusIoResourceAttributes.UNKNOWN_OCTAL_MODE) { |
| 478 | + permissions &= ~umask; |
| 479 | + } |
| 480 | + |
465 | 481 | try {
|
466 | 482 | // do a null check here, to avoid creating a file stream if there are no filters...
|
467 | 483 | ArchiveEntry entry = ArchiveEntry.createFileEntry(destFileName, inputFile, permissions, getDirectoryMode());
|
|
0 commit comments