commit - 51079ed47eae7b38348cb6c00ad27c20d473667c
commit + 5eba1883785391436224f0052c8148d61a48e2cb
blob - bfb2f6b33741ce35450d4d312cdaec60391ebce9
blob + 95c8a359227aaa4240c6ba8d06f98c1b5976c3cc
--- plass
+++ plass
return substr($pass, 0, $length);
}
-sub readpass {
- # todo some stty black magic to avoid echo
- print shift if -t;
- my $pass = <>;
- die "failed to read stdin: $!" unless defined($pass);
- chomp $pass;
- return $pass;
-}
-
sub mkdirs {
my $dir = shift;
my $parent = dirname $dir;
my @args = ($gpg, @gpg_flags, '-e', '-r', recipient(),
'-o', '-');
open my $fh, '|-', @args;
- say $fh "$pass";
+ print $fh "$pass";
close($fh);
my $ok = !$?;
'q' => \$q,
) or usage;
- my $pass = gen($chars, $length);
+ my $pass = gen($chars, $length) . "\n";
if ($nop) {
say $pass;
return;
my $name = shift @ARGV;
my $file = name2file $name;
- my $pass = readpass "Enter the password: ";
+ my $msg = -f $file ? "update $name" : "+$name";
+
+ my $pass = "";
+ $pass .= $_ while <STDIN>;
+ die "No content" if $pass eq "";
+
writepass($file, $pass);
got_add $file;
- got_ci (-f $file ? "update $name" : "+$name");
- say $pass unless $q;
+ got_ci $msg;
+ print $pass unless $q;
}