#!/usr/bin/perl
#Copyright (c) 2008, Zane C. Bowers
#All rights reserved.
#
#Redistribution and use in source and binary forms, with or without modification,
#are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
#IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
#INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
#THE POSSIBILITY OF SUCH DAMAGE.
use strict;
use warnings;
use Getopt::Std;
use FreeBSD::Ports;
$Getopt::Std::STANDARD_HELP_VERSION = 1;
#version function
sub main::VERSION_MESSAGE {
print "portsdo 0.0.0\n";
}
#print help
sub main::HELP_MESSAGE {
print "\n".
"-d The action to do.\n".
"-p The port to act on.\n\n".
"Example:\n".
" Install 'www/apache22'\n".
" portsdo -d install -p www/apache22\n";
}
#gets the options
my %opts=();
getopts('d:p:', \%opts);
my $ports=FreeBSD::Ports->new;
if (!defined($opts{d})) {
warn('portsdo: No action specified using "-d"');
exit 1;
}
if (!defined($opts{p})) {
warn('portsdo: No port specified using "-p"');
exit 1;
}
$ports->do($opts{d}, $opts{p});
=head1 NAME
portsdo - Act upon a port with out having to CD to that directory.
=head1 SYNOPSIS
portsdo B<-d> <action> B<-p> <port>
=head1 ARGUEMENTS
=head2 B<-d> <action>
This is the action to do. See ports(9) for more info.
=head2 B<-p> <port>