1st release.
This commit is contained in:
parent
46f4512ed3
commit
3b37f9b952
|
@ -0,0 +1,49 @@
|
|||
include GNUmakevars
|
||||
|
||||
TARGETS = apppath preppath delpath apppath.1 preppath.1 delpath.1
|
||||
CONFDIR=../../configure
|
||||
CONFDIR_exists=$(shell [ -d $(CONFDIR) ] && echo ok)
|
||||
|
||||
all: configure $(TARGETS)
|
||||
|
||||
clean:
|
||||
rm -f $(TARGETS) *.bak core foo bar baz *.ps
|
||||
|
||||
distclean: clean
|
||||
rm -f customize
|
||||
|
||||
install: $(BINDIR) \
|
||||
$(BINDIR)/apppath \
|
||||
$(BINDIR)/preppath \
|
||||
$(BINDIR)/delpath \
|
||||
$(MAN1DIR)/apppath.1 \
|
||||
$(MAN1DIR)/preppath.1 \
|
||||
$(MAN1DIR)/delpath.1 \
|
||||
|
||||
|
||||
%.1: %.pl
|
||||
pod2man $< > $@
|
||||
|
||||
%: %.pl customize
|
||||
sh ./customize < $< > $@
|
||||
chmod +x $@
|
||||
|
||||
%: %.sh customize
|
||||
sh ./customize < $< > $@
|
||||
chmod +x $@
|
||||
|
||||
customize: configure
|
||||
sh ./configure
|
||||
|
||||
$(BINDIR):
|
||||
mkdir -p $@
|
||||
|
||||
ifeq ($(CONFDIR_exists),ok)
|
||||
|
||||
configure: $(CONFDIR)/start $(CONFDIR)/perl $(CONFDIR)/finish
|
||||
cat $^ > $@
|
||||
|
||||
endif
|
||||
|
||||
|
||||
include GNUmakerules
|
|
@ -0,0 +1,53 @@
|
|||
#!@@@perl@@@ -w
|
||||
|
||||
=head1 NAME
|
||||
|
||||
apppath - append directories to path
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
apppath [-c] directory...
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
apppath appends the directories given as arguments to the PATH and
|
||||
prints the new path on stdout.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<-c>
|
||||
|
||||
Check whether the directories exist before adding them. Nonexistent
|
||||
directories are silently ignored.
|
||||
|
||||
=back
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Peter J. Holzer <hjp@hjp.at>.
|
||||
|
||||
=cut
|
||||
|
||||
use strict;
|
||||
my $path = $ENV{PATH};
|
||||
my @path = split(/:/, $path);
|
||||
my $check;
|
||||
|
||||
if ($ARGV[0] eq '-c') {
|
||||
$check = 1;
|
||||
shift;
|
||||
}
|
||||
|
||||
if ($#ARGV == 0 && $ARGV[0] =~ /:/) {
|
||||
@ARGV = split(/:/, $ARGV[0]);
|
||||
}
|
||||
|
||||
nd: for my $nd (@ARGV) {
|
||||
for my $od (@path) {
|
||||
next nd if ($nd eq $od);
|
||||
}
|
||||
push @path, $nd if (!$check || -d $nd);
|
||||
}
|
||||
print join(':', @path), "\n";
|
|
@ -0,0 +1,38 @@
|
|||
#!@@@perl@@@ -w
|
||||
|
||||
=head1 NAME
|
||||
|
||||
delpath - delete directories from path
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
delpath directory...
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
delpath deletes the directories given as arguments from the PATH and
|
||||
prints the new path on stdout.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Peter J. Holzer <hjp@hjp.at>.
|
||||
|
||||
=cut
|
||||
|
||||
use strict;
|
||||
|
||||
if ($#ARGV == 0 && $ARGV[0] =~ /:/) {
|
||||
@ARGV = split(/:/, $ARGV[0]);
|
||||
}
|
||||
|
||||
my $path = $ENV{PATH};
|
||||
my @path = split(/:/, $path);
|
||||
|
||||
my %del;
|
||||
for (@del{@ARGV}) {
|
||||
$_ = 1;
|
||||
}
|
||||
|
||||
@path = grep { !$del{$_} } @path;
|
||||
|
||||
print join(':', @path), "\n";
|
|
@ -0,0 +1,56 @@
|
|||
#!@@@perl@@@ -w
|
||||
|
||||
=head1 NAME
|
||||
|
||||
preppath - prepend directories to path
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
preppath [-c] directory...
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
apppath prepends the directories given as arguments to the PATH,
|
||||
eliminates any duplicates prints the new path on stdout.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<-c>
|
||||
|
||||
Check whether the directories exist before adding them. Nonexistent
|
||||
directories are silently ignored.
|
||||
|
||||
=back
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Peter J. Holzer <hjp@hjp.at>.
|
||||
|
||||
=cut
|
||||
|
||||
use strict;
|
||||
my $path = $ENV{PATH};
|
||||
my @path = split(/:/, $path);
|
||||
my $check;
|
||||
|
||||
if ($ARGV[0] eq '-c') {
|
||||
$check = 1;
|
||||
shift;
|
||||
}
|
||||
|
||||
if ($#ARGV == 0 && $ARGV[0] =~ /:/) {
|
||||
@ARGV = split(/:/, $ARGV[0]);
|
||||
}
|
||||
|
||||
my %seen;
|
||||
my @newpath;
|
||||
|
||||
for my $d (@ARGV, @path) {
|
||||
if (!$seen{$d} && (!$check || -d $d)) {
|
||||
push @newpath, $d;
|
||||
$seen{$d} = 1;
|
||||
}
|
||||
}
|
||||
print join(':', @newpath), "\n";
|
Loading…
Reference in New Issue