From 4cf17da6e7e7afc01694eacd85358c480b79c42c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Tue, 27 Jul 2021 00:34:31 +0200 Subject: dwim: Add -o (use OPENER) option --- dwim | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'dwim') diff --git a/dwim b/dwim index a3224cb..04e2632 100755 --- a/dwim +++ b/dwim @@ -7,7 +7,21 @@ use warnings; use strict; use subs qw/cd dir dirname env fail handle path run/; -my @OPENER = ('xtopen'); +my ($cwd, $handler, $phrase); +my ($DEBUG, $OPENER); + +while ($_ = shift @ARGV) { + if (/^-/) { + $DEBUG = 1 if /d/; + $OPENER = 1 if /o/; + die "usage: $0 [-d] [phrase]\n" if not /[do]/ + } else { + $phrase = $_; + last; + } +} + +my @OPENER = $OPENER ? ('xtopen') : (); my @EDITOR = (@OPENER, 'vi'); my @PDF_VIEWER = ('xpdf'); my @MAN_VIEWER = (@OPENER, 'man'); @@ -17,18 +31,6 @@ my @FILE_BROWSER = ('rox'); my @MAILDIR_VIEWER = (@OPENER, 'mutt -f'); my $MAILROOT = env MAILROOT => '/home/john/mail/'; -my ($DEBUG, $cwd, $handler, $phrase); - -while ($_ = shift @ARGV) { - if (/^-d$/) { - $DEBUG = 1; - } elsif (/^-/) { - die "usage: $0 [-d] [phrase]\n"; - } else { - $phrase = $_; - } -} - $phrase = `xsel -o` if not defined $phrase; for ($phrase) { @@ -202,7 +204,7 @@ sub run { s/(\s)/\\$1/g for @argv; # escape whitespace print STDERR "@argv\n"; } - if (fork == 0) { + if (!$OPENER or fork == 0) { exec @_; die "could not exec: $1\n"; } -- cgit v1.2.3