Implement interactive mode.
Signed-off-by: Nicolás Ortega Froysa <nicolas@ortegas.org>
This commit is contained in:
parent
86c20031bc
commit
9dc43cc866
45
pacundo.pl
45
pacundo.pl
@ -110,3 +110,48 @@ while ($found_txs < $num_txs && defined(my $line = $pacman_log->readline)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Interactive mode
|
||||||
|
if (!$r_flag) {
|
||||||
|
print("Last changes:\n");
|
||||||
|
my $n = 1;
|
||||||
|
foreach my $tx (@undo_txs) {
|
||||||
|
if ($tx->{action} =~ /(upgraded|downgraded)/) {
|
||||||
|
format UPGRFORMAT =
|
||||||
|
@|| @<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<< -> @<<<<<<<<<<<<<
|
||||||
|
$n, $tx->{action}, $tx->{pkg_name}, $tx->{oldver}, $tx->{newver}
|
||||||
|
.
|
||||||
|
$~ = "UPGRFORMAT";
|
||||||
|
} else {
|
||||||
|
format INSTFORMAT =
|
||||||
|
@|| @<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||||
|
$n, $tx->{action}, $tx->{pkg_name}
|
||||||
|
.
|
||||||
|
$~ = "INSTFORMAT";
|
||||||
|
}
|
||||||
|
write();
|
||||||
|
$n++;
|
||||||
|
}
|
||||||
|
|
||||||
|
print("Select transactions to undo (e.g. '1 2 3', '1-3')\n");
|
||||||
|
print("> ");
|
||||||
|
my @sel = split(' ', <STDIN>);
|
||||||
|
|
||||||
|
foreach my $i (@sel) {
|
||||||
|
if ($i =~ /[0-9]-[0-9]/) {
|
||||||
|
my ($start, $end) = $i =~ /([0-9])-([0-9])/;
|
||||||
|
push(@sel, ($start..$end));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@sel = sort grep(!/[0-9]-[0-9]/, @sel);
|
||||||
|
|
||||||
|
my @sel_undo;
|
||||||
|
|
||||||
|
foreach my $i (@sel) {
|
||||||
|
push(@sel_undo, $undo_txs[$i-1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
@undo_txs = @sel_undo;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user