Compare commits
No commits in common. "master" and "master" have entirely different histories.
35
pick
35
pick
|
@ -1,35 +0,0 @@
|
||||||
#!/usr/bin/env perl
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
|
|
||||||
use Scalar::Util qw{looks_like_number};
|
|
||||||
|
|
||||||
my @choices;
|
|
||||||
|
|
||||||
for (@ARGV) {
|
|
||||||
if (/^--$/) {
|
|
||||||
push(@choices, <STDIN>);
|
|
||||||
} elsif (/^@(.+)$/) {
|
|
||||||
open(my $fh, '<', $1);
|
|
||||||
push(@choices, <$fh>);
|
|
||||||
close($fh);
|
|
||||||
} else {
|
|
||||||
push(@choices, "$_\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
open(my $tty, '<', '/dev/tty');
|
|
||||||
|
|
||||||
my $sel;
|
|
||||||
until (looks_like_number($sel) && $sel > 0 && $sel <= @choices) {
|
|
||||||
while (my ($i, $c) = each @choices) {
|
|
||||||
print $i+1 . ') ' . $choices[$i];
|
|
||||||
}
|
|
||||||
print $ENV{'PS3'} || '#? ';
|
|
||||||
exit(1) unless defined($sel = <$tty>);
|
|
||||||
}
|
|
||||||
|
|
||||||
close($tty);
|
|
||||||
|
|
||||||
print $choices[$sel - 1];
|
|
25
pick.1
25
pick.1
|
@ -1,25 +0,0 @@
|
||||||
.Dd Sep 13, 2023
|
|
||||||
.Dt TS 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm pick
|
|
||||||
.Nd Choose interactively from the set of arguments and input lines
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Ar arg ...
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
.Nm
|
|
||||||
will display a Korn shell style selection menu with stdin contents and
|
|
||||||
arguments as options.
|
|
||||||
.Pp
|
|
||||||
When a selection is made, the command will print its value to stdout.
|
|
||||||
If the selection is aborted, nothing will be printed.
|
|
||||||
.Sh ENVIRONMENT
|
|
||||||
.Bl -tag -width PS3
|
|
||||||
.It Ev PS3
|
|
||||||
Prompt string displayed to the user (default: #?).
|
|
||||||
.El
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
.Ex -std
|
|
||||||
.Sh AUTHORS
|
|
||||||
.An Adolfo Perez Alvarez Aq Mt adolfopa@sdf.org
|
|
4
scmfmt
4
scmfmt
|
@ -21,9 +21,9 @@ i\
|
||||||
|
|
||||||
bl' |
|
bl' |
|
||||||
sed -e '1s/^/./' -e 's/^ /./' |
|
sed -e '1s/^/./' -e 's/^ /./' |
|
||||||
par -P=. |
|
fmt -p |
|
||||||
awk '
|
awk '
|
||||||
BEGIN { LIMIT = 72 }
|
BEGIN { LIMIT = 65 }
|
||||||
NR == 1 || /^[^\.]/ || length($0) < LIMIT {
|
NR == 1 || /^[^\.]/ || length($0) < LIMIT {
|
||||||
sub(/^\./, NR == 1 ? "" : " ");
|
sub(/^\./, NR == 1 ? "" : " ");
|
||||||
print;
|
print;
|
||||||
|
|
Loading…
Reference in New Issue