Thread .rar mit Perl unkomprimiert verpacken? (11 answers)
Opened by KarlaCluft at 2013-02-11 17:30

Linuxer
 2013-02-12 21:01
#165749 #165749
User since
2006-01-27
3875 Artikel
HausmeisterIn

user image
Hi,

abgeleitet vom Kommandozeilen-Tool rar/unrar:

Code: (dl )
1
2
3
4
5
6
# 1. Archiv erstellen
rar a -m0 archive.rar file1.txt file2.txt
# 2. Kommentar ans Archiv hinzufuegen
echo "mein Archiv Kommentar" | rar c archive.rar
# 3. Kommentar kontrollieren
rar cw archive.rar


IMHO gibst Du auf der Kommandozeile jeweils nur ein Kommando an. 1x Archiv erstellen, 1x Kommentar hinzufügen.
Der zu schreibende Kommentar wird anscheinend separat hinzugefügt und von STDIN gelesen.

mögliche Perl-Umsetzung:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#! /usr/bin/env perl
use strict;
use warnings;
use Archive::Rar::Passthrough;

my $rar = Archive::Rar::Passthrough->new();

my $rc = $rar->run(
    'command'   => 'a',
    'switches'  => [ '-m0' ],
    archive     => 'my.rar',
    files       => [ glob("*.txt") ],
);

# Fehlerbehandlung


print "Please enter the archive comment now (<CTRL>+D ends comment):\n";
$rc = $rar->run(
    'command' => 'c',
    archive   => 'my.rar',
);

# Fehlerbehandlung


Damit fragt das Skript nach dem Kommentar.
Alternativ kann das Skript auch via Pipe den Kommentar einlesen (dann ist der Kommentar zu ignorieren...)

Code: (dl )
1
2
3
4
5
6
7
8
$ perl t.pl 
Please enter the archive comment now (<CTRL>+D ends comment):
bla
^D
$
$ echo "lese von stdin" | perl t.pl
Please enter the archive comment now (<CTRL>+D ends comment):
$


Die Kommentar-Eingabeaufforderung, die rar normalerweise selber bringt, wird von Archive::Rar::Passthrough abgefangen, sodass diese Meldung den User erstmal nicht erreicht; daher die eigene Aufforderung.


Das Ganze geht möglicherweise noch schöner; daran mögen sich andere versuchen ;-)
Last edited: 2013-02-12 21:03:30 +0100 (CET)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread .rar mit Perl unkomprimiert verpacken?