Overview
Comment: | ofarc: Add --archive-comment= |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
2fae2c2c30b68cba44c857e17b9558f1 |
User & Date: | js on 2024-03-09 12:32:04 |
Other Links: | manifest | tags |
Context
2024-03-09
| ||
16:11 | OFZIPArchive: Fix disk number 0 vs 1 check-in: 9fd7456e3a user: js tags: trunk | |
12:32 | ofarc: Add --archive-comment= check-in: 2fae2c2c30 user: js tags: trunk | |
12:10 | ofarc: Print archive comment with `-lv` check-in: f5bc11fc39 user: js tags: trunk | |
Changes
Modified utils/ofarc/Archive.h from [b06ac0d4c3] to [d352968285].
︙ | ︙ | |||
31 32 33 34 35 36 37 | stream: (OF_KINDOF(OFStream *))stream mode: (OFString *)mode encoding: (OFStringEncoding)encoding; - (void)listFiles; - (void)extractFiles: (OFArray OF_GENERIC(OFString *) *)files; - (void)printFiles: (OFArray OF_GENERIC(OFString *) *)files; @optional | | > | 31 32 33 34 35 36 37 38 39 40 41 42 | stream: (OF_KINDOF(OFStream *))stream mode: (OFString *)mode encoding: (OFStringEncoding)encoding; - (void)listFiles; - (void)extractFiles: (OFArray OF_GENERIC(OFString *) *)files; - (void)printFiles: (OFArray OF_GENERIC(OFString *) *)files; @optional - (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files archiveComment: (nullable OFString *)archiveComment; @end OF_ASSUME_NONNULL_END |
Modified utils/ofarc/LHAArchive.m from [5d3bfe8dcb] to [e916d4fb21].
︙ | ︙ | |||
443 444 445 446 447 448 449 450 451 452 | @"File %[file] is not in the archive!", @"file", file)]; app->_exitStatus = 1; } } - (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files { OFFileManager *fileManager = [OFFileManager defaultManager]; | > < < < < < < < | 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 | @"File %[file] is not in the archive!", @"file", file)]; app->_exitStatus = 1; } } - (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files archiveComment: (OFString *)archiveComment { OFFileManager *fileManager = [OFFileManager defaultManager]; for (OFString *fileName in files) { void *pool = objc_autoreleasePoolPush(); OFFileAttributes attributes; OFFileAttributeType type; OFMutableLHAArchiveEntry *entry; OFStream *output; |
︙ | ︙ |
Modified utils/ofarc/OFArc.m from [03e08f3480] to [1f3c890653].
︙ | ︙ | |||
55 56 57 58 59 60 61 | @"Usage: %[prog] -[acCfhlnpqtvx] archive.zip [file1 file2 ...]", @"prog", [OFApplication programName])]; if (full) { [stream writeString: @"\n"]; [stream writeLine: OF_LOCALIZED(@"full_usage", @"Options:\n" | | > > | | | > | > | | | > | > | | | | | | | | > | | 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | @"Usage: %[prog] -[acCfhlnpqtvx] archive.zip [file1 file2 ...]", @"prog", [OFApplication programName])]; if (full) { [stream writeString: @"\n"]; [stream writeLine: OF_LOCALIZED(@"full_usage", @"Options:\n" @" -a --append Append to archive\n" @" --archive-comment= Archive comment to use when " @"creating or appending\n" @" -c --create Create archive\n" @" -C --directory= Extract into the specified " @"directory\n" @" -E --encoding= The encoding used by the " @"archive\n" @" (only tar, lha and zoo files)" @"\n" @" -f --force Force / overwrite files\n" @" -h --help Show this help\n" @" --iri Use an IRI to access the " @"archive\n" @" -l --list List all files in the archive" @"\n" @" -n --no-clobber Never overwrite files\n" @" -p --print Print one or more files from " @"the archive\n" @" -q --quiet Quiet mode (no output, " @"except errors)\n" @" -t --type= Archive type (gz, lha, tar, " @"tgz, zip, zoo)\n" @" -v --verbose Verbose output for file list" @"\n" @" -x --extract Extract files")]; } [OFApplication terminateWithStatus: status]; } static void mutuallyExclusiveError(OFUnichar shortOption1, OFString *longOption1, |
︙ | ︙ | |||
157 158 159 160 161 162 163 | [OFStdErr writeLine: OF_LOCALIZED( @"writing_not_supported", @"Writing archives of type %[type] is not (yet) supported!", @"type", type)]; } static void | | > > > > > > > | | > | 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 | [OFStdErr writeLine: OF_LOCALIZED( @"writing_not_supported", @"Writing archives of type %[type] is not (yet) supported!", @"type", type)]; } static void addFiles(id <Archive> archive, OFArray OF_GENERIC(OFString *) *files, OFString *archiveComment) { OFMutableArray *expandedFiles = [OFMutableArray arrayWithCapacity: files.count]; OFFileManager *fileManager = [OFFileManager defaultManager]; for (OFString *file in files) { OFFileAttributes attributes = [fileManager attributesOfItemAtPath: file]; if ([attributes.fileType isEqual: OFFileTypeDirectory]) [expandedFiles addObjectsFromArray: [fileManager subpathsOfDirectoryAtPath: file]]; else [expandedFiles addObject: file]; } if (expandedFiles.count < 1) { [OFStdErr writeLine: OF_LOCALIZED(@"add_no_file_specified", @"Need one or more files to add!")]; [OFApplication terminateWithStatus: 1]; } [archive addFiles: expandedFiles archiveComment: archiveComment]; } @implementation OFArc - (void)applicationDidFinishLaunching: (OFNotification *)notification { OFString *archiveComment, *outputDir, *encodingString, *type; bool isIRI; const OFOptionsParserOption options[] = { { 'a', @"append", 0, NULL, NULL }, { 0, @"archive-comment", 1, NULL, &archiveComment }, { 'c', @"create", 0, NULL, NULL }, { 'C', @"directory", 1, NULL, &outputDir }, { 'E', @"encoding", 1, NULL, &encodingString }, { 'f', @"force", 0, NULL, NULL }, { 'h', @"help", 0, NULL, NULL }, { 0, @"iri", 0, &isIRI, NULL }, { 'l', @"list", 0, NULL, NULL }, |
︙ | ︙ | |||
373 374 375 376 377 378 379 | #endif archive = [self openArchiveWithIRI: IRI type: type mode: mode encoding: encoding]; | | | 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 | #endif archive = [self openArchiveWithIRI: IRI type: type mode: mode encoding: encoding]; addFiles(archive, files, archiveComment); break; case 'l': if (remainingArguments.count != 1) help(OFStdErr, false, 1); IRI = argumentToIRI(remainingArguments.firstObject, isIRI); |
︙ | ︙ | |||
645 646 647 648 649 650 651 | [OFStdErr writeLine: OF_LOCALIZED( @"file_is_not_a_valid_archive", @"File %[file] is not a valid archive!", @"file", IRI.string)]; goto error; } | | | | 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 | [OFStdErr writeLine: OF_LOCALIZED( @"file_is_not_a_valid_archive", @"File %[file] is not a valid archive!", @"file", IRI.string)]; goto error; } if ((mode == 'a' || mode == 'c') && ![archive respondsToSelector: @selector(addFiles:archiveComment:)]) { writingNotSupported(type); goto error; } return archive; error: |
︙ | ︙ |
Modified utils/ofarc/TarArchive.m from [84b3855c99] to [123c1d43aa].
︙ | ︙ | |||
476 477 478 479 480 481 482 483 484 485 | @"File %[file] is not in the archive!", @"file", file)]; app->_exitStatus = 1; } } - (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files { OFFileManager *fileManager = [OFFileManager defaultManager]; | > < < < < < < < | 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 | @"File %[file] is not in the archive!", @"file", file)]; app->_exitStatus = 1; } } - (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files archiveComment: (OFString *)archiveComment { OFFileManager *fileManager = [OFFileManager defaultManager]; for (OFString *fileName in files) { void *pool = objc_autoreleasePoolPush(); OFFileAttributes attributes; OFFileAttributeType type; OFMutableTarArchiveEntry *entry; OFStream *output; |
︙ | ︙ |
Modified utils/ofarc/ZIPArchive.m from [337eae1f07] to [eaf9f03d7b].
︙ | ︙ | |||
461 462 463 464 465 466 467 468 469 470 | } [stream close]; } } - (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files { OFFileManager *fileManager = [OFFileManager defaultManager]; | > | < < < < < | 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 | } [stream close]; } } - (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files archiveComment: (OFString *)archiveComment { OFFileManager *fileManager = [OFFileManager defaultManager]; _archive.archiveComment = archiveComment; for (OFString *localFileName in files) { void *pool = objc_autoreleasePoolPush(); OFArray OF_GENERIC (OFString *) *components; OFString *fileName; OFFileAttributes attributes; bool isDirectory = false; |
︙ | ︙ |
Modified utils/ofarc/ZooArchive.m from [5d15e4d640] to [d217739dcd].
︙ | ︙ | |||
445 446 447 448 449 450 451 452 453 454 | @"File %[file] is not in the archive!", @"file", file)]; app->_exitStatus = 1; } } - (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files { OFFileManager *fileManager = [OFFileManager defaultManager]; | > | < < < < < | 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 | @"File %[file] is not in the archive!", @"file", file)]; app->_exitStatus = 1; } } - (void)addFiles: (OFArray OF_GENERIC(OFString *) *)files archiveComment: (OFString *)archiveComment { OFFileManager *fileManager = [OFFileManager defaultManager]; _archive.archiveComment = archiveComment; for (OFString *fileName in files) { void *pool = objc_autoreleasePoolPush(); OFFileAttributes attributes; OFFileAttributeType type; OFMutableZooArchiveEntry *entry; OFStream *output; |
︙ | ︙ |
Modified utils/ofarc/localization/de.json from [ee8938b19c] to [5b95b5a4b7].
︙ | ︙ | |||
11 12 13 14 15 16 17 | { usage: [ "Benutzung: %[prog] -[acCfhlnpqtvx] archiv.zip [datei1 datei2 ...]" ], full_usage: [ "Optionen:\n", | | > > > | | | | | | | | | | | | | > | > | | | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | { usage: [ "Benutzung: %[prog] -[acCfhlnpqtvx] archiv.zip [datei1 datei2 ...]" ], full_usage: [ "Optionen:\n", " -a --append Zu Archiv hinzufügen\n", " --archive-comment= Zu benutzender Archivkommentar beim ", "Erstellen oder\n", " Hinzufügen\n", " -c --create Archiv erstellen\n", " -C --directory= In angegebenes Verzeichnis entpacken\n", " -E --encoding= Das Encoding des Archivs\n", " (nur tar-, lha- und zoo-Dateien)\n", " -f --force Existierende Dateien überschreiben\n", " -h --help Diese Hilfe anzeigen\n", " --iri Eine IRI benutzen um auf das Archiv ", "zuzugreifen\n", " -l --list Alle Dateien im Archiv auflisten\n", " -n --no-clobber Dateien niemals überschreiben\n", " -p --print Eine oder mehr Dateien aus dem Archiv ", "ausgeben\n", " -q --quiet Ruhiger Modus (keine Ausgabe außer ", "Fehler)\n", " -t --type= Archiv-Typ (gz, lha, tar, tgz, zip, ", "zoo)\n", " -v --verbose Ausführlicher Modus für Datei-Liste\n", " -x --extract Dateien entpacken" ], "2_options_mutually_exclusive": [ "Fehler: -%[shortopt1] / --%[longopt1] und ", "-%[shortopt2] / --%[longopt2] schließen sich gegenseitig aus!" ], "5_options_mutually_exclusive": [ "Fehler: -%[shortopt1] / --%[longopt1], -%[shortopt2] / ", |
︙ | ︙ |