save point

This commit is contained in:
kake26 2025-04-13 21:44:48 -05:00
parent 1e414f35c9
commit 36b840f0da
Signed by: kake26
GPG key ID: E0A989B571D1F99F
4 changed files with 11 additions and 1 deletions

View file

@ -7,5 +7,6 @@ WriteMakefile(
'DBI' => 0, 'DBI' => 0,
'DBD::SQLite' => 0, 'DBD::SQLite' => 0,
'Term::ReadLine' => 0, 'Term::ReadLine' => 0,
'Cwd' => 0,
}, },
); );

0
lib/pshell_history.db Normal file
View file

View file

@ -3,6 +3,7 @@
use lib 'lib'; use lib 'lib';
use History::SQLite; use History::SQLite;
use Term::ReadLine; use Term::ReadLine;
use Cwd;
# Initialize command history # Initialize command history
my $history = History::SQLite->new( my $history = History::SQLite->new(
@ -19,7 +20,8 @@ my @history = $history->get_all;
$term->addhistory($_) for @history; $term->addhistory($_) for @history;
while (1) { while (1) {
my $prompt = "pshell> "; my $cwd = getcwd();
my $prompt = "pshell:$cwd> ";
my $command = $term->readline($prompt); my $command = $term->readline($prompt);
last unless defined $command; last unless defined $command;
@ -29,6 +31,13 @@ while (1) {
# Skip empty commands # Skip empty commands
next unless length $command; next unless length $command;
# Handle cd command specially
if ($command =~ /^cd\s*(.*)/) {
my $dir = $1 || $ENV{HOME};
chdir $dir or warn "Could not change to directory $dir: $!";
next;
}
# Save command to history # Save command to history
$history->add($command); $history->add($command);
$term->addhistory($command); $term->addhistory($command);

Binary file not shown.