#!/usr/bin/perl -w use strict; # fpkg -- Package Tool Wrapper for FreeBSD # ver 0.2 # 2006/01/24 # # Yuki SHIMAZU # y.shimazu@nifty.com # http://www.shimazu.org/fpkg/ # # Copyright (C) 2006 Yuki SHIMAZU. All Rights Reserved. # Files: # /usr/local/bin/fpkg # /var/fpkg/INDEX__ # ---------------------------------------- # Please rewrite for your environment. my $ftphost = "ftp.jp.freebsd.org"; # ---------------------------------------- my $indexdir = "/var/fpkg"; my $indexprefix = "INDEX_"; my $uid = $<; my $usage = <){ chomp; my ($name,$ports,undef,$desc,undef,undef,undef,undef,undef,$www,undef,undef) = split(/\|/,$_); if ( $name =~ /$searchkey/i ) { if( $vflag == 1 ) { print "$name ($ports) - $desc\n"; } elsif ( $vflag == 2 ) { print "[ $name ]\nports: $ports\ndesc: $desc\nwww: $www\n"; } else { print "$name\n"; } } } close(IN); exit; } # # All text search on package list (allsearch) # sub allsearch { if ( ! @pkgnames ) { print $usage; exit 1; } my $indexpath = $indexdir . "/" . $indexprefix . $osver . "_" . $ftphost; if ( ! -e $indexpath ) { print "Error: You need to execute \"fpkg update\".\n"; exit; } my $searchkey = join("|",@pkgnames); open(IN,$indexpath); while(){ chomp; my ($name,$ports,undef,$desc,undef,undef,undef,undef,undef,$www,undef,undef) = split(/\|/,$_); if ( $_ =~ /$searchkey/i ) { if( $vflag == 1 ) { print "$name ($ports) - $desc\n"; } elsif ( $vflag == 2 ) { print "[ $name ]\nports: $ports\ndesc: $desc\nwww: $www\n"; } else { print "$name\n"; } } } close(IN); exit; }