#!/usr/bin/perl use ExtUtils::MakeMaker; use strict; use warnings; print "This tool will try to remove old NATools instalation files.\n"; print "Note that depending on where you have your old NATools files, you might need\nto execute this script as superuser.\n"; print "\n"; my @todelete = (); my @ftodelete = (); # 1. Libraries print "Will try to find libnatools in the standard locations...\n"; my @libfolders = qw(/usr/lib /usr/local/lib /opt/local/lib /sw/lib /opt/local/lib); for my $f (@libfolders) { if (-f "$f/libnatools.a") { push @todelete, glob("$f/libnatools*"); } } if (@todelete) { print "\nfound these files:\n"; print join("", map { " - $_\n" } @todelete); my $ans = prompt("Can I delete these files? (y/n)", "N"); if ($ans eq "y" || $ans eq "Y") { print "\n"; for (@todelete) { print "Deleting $_\n"; unlink $_; } } } else { print "\nNone found...\n"; } print "\n"; # 2. pm files @todelete = (); @ftodelete = (); print "Now, I'll try to find the perl module files. I'll look into your \@INC for them.\n"; for my $f (@INC) { if (-d "$f/NAT") { push @todelete, glob("$f/NAT/*"); push @ftodelete, "$f/NAT"; } if (-d "$f/auto/NAT") { push @todelete, glob("$f/auto/NAT/*"); push @ftodelete, "$f/auto/NAT"; } } my $prefix = ""; if (@todelete) { $prefix = $todelete[0]; if ($prefix =~ m!/lib!) { $prefix =~ s!/lib.*!!; } else { $prefix = undef; } print "\nfound these files:\n"; print join("", map { " - $_\n" } @todelete); my $ans = prompt("Can I delete these files? (y/n)", "N"); if ($ans eq "y" || $ans eq "Y") { print "\n"; for (@todelete) { print "Deleting $_\n"; unlink $_; } for (@ftodelete) { print "Deleting empty folder $_\n"; rmdir $_; } } } else { print "\nNone found...\n"; } print "\n"; @todelete = (); @ftodelete = (); if (!$prefix) { print "I could not detect a prefix. Will not try to delete man pages.\n" } else { print "Now trying to find application manpages...\n"; for my $f ("$prefix/man/man1", "$prefix/man1", "$prefix/share/man/man1", "$prefix/share/man1") { if (-d $f) { push @todelete, glob("$f/nat-*.1"); } } if (@todelete) { print "\nfound these files:\n"; print join("", map { " - $_\n" } @todelete); my $ans = prompt("Can I delete these files? (y/n)", "N"); if ($ans eq "y" || $ans eq "Y") { print "\n"; for (@todelete) { print "Deleting $_\n"; unlink $_; } } } else { print "\nNone found...\n"; } print "\n"; @todelete = (); print "Now trying to find module manpages...\n"; for my $f ("$prefix/man/man3", "$prefix/man3", "$prefix/share/man/man3", "$prefix/share/man3") { if (-d $f) { push @todelete, glob("$f/NAT::*.3pm"); } } if (@todelete) { print "\nfound these files:\n"; print join("", map { " - $_\n" } @todelete); my $ans = prompt("Can I delete these files? (y/n)", "N"); if ($ans eq "y" || $ans eq "Y") { print "\n"; for (@todelete) { print "Deleting $_\n"; unlink $_; } } } else { print "\nNone found...\n"; } print "\n"; } @todelete = (); if (-d "$prefix/share/NATools") { print "The NATools data folder exists [$prefix/share/NATools].\n"; my $ans = prompt("Can I remove it? (y/n)", "N"); if ($ans eq "y" || $ans eq "Y") { print "\n"; for (glob("$prefix/share/NATools/*")) { print "Deleting $_\n"; unlink $_; } print "Deleting empty directory $prefix/share/NATools\n"; rmdir "$prefix/share/NATools" } } print "\n"; @todelete = (); my @apps = qw( nat-samplea nat-ptd nat-postbin nat-mkRealDict nat-translate-shell nat-mergeidx nat-sentence-align nat-create nat-grep nat-shell nat-codify nat-dict nat-ntd-add nat-CheckPTD nat-substDict nat-addDict nat-lex2perl nat-ipfp nat-compareDicts nat-css nat-ngrams nat-ntd-dump nat-pre nat-ngramsIdx nat-rank nat-mkMakefile nat-mat2dic nat-sentalign nat-server nat-mkntd nat-StarDict nat-initmat nat-sampleb nat-examplesExtractor nat-pair2tmx nat-words2id nat-makeCWB nat-tmx2pair nat-dumpDicts ); my @path = split /:/, $ENV{PATH}; print "Looking up for NATools executables...\n"; for my $path (@path) { for my $app (@apps) { push @todelete, "$path/$app" if -f "$path/$app"; } } if (@todelete) { print "\nfound these files:\n"; print join("", map { " - $_\n" } @todelete); my $ans = prompt("Can I delete these files? (y/n)", "N"); if ($ans eq "y" || $ans eq "Y") { print "\n"; for (@todelete) { print "Deleting $_\n"; unlink $_; } } } else { print "\nNone found...\n"; } print "\n"; print "Your system should be clear. Good luck.\n\n"; __END__