5c1d844e40
* Name change OSX -> macOS
fix commit c96b64e
This commit finishes remaining osx to macOS change, as well as replacing MacOS with macOS.
The reason for the later one is because the "correct" casing of macOS is like that. Apple styles it to looks like iOS, watchOS, tvOS, etc. And unfortunately they all start with a lowercase letter, making propercasing (or even title-casing) odd.
* fix casing of Linux, UNIX, and Windows
79 lines
2.1 KiB
Perl
Executable file
79 lines
2.1 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
# Script to remove all files installed by the macOS pandoc installer
|
|
# and unregister the package. Modified from a script contributed
|
|
# by Daniel T. Staal.
|
|
|
|
use warnings;
|
|
use strict;
|
|
|
|
use File::Spec;
|
|
|
|
# The main info: this is the list of files to remove and the pkg_id.
|
|
my $pkg_id = 'net.johnmacfarlane.pandoc';
|
|
|
|
# Find which, if any, volume Pandoc is installed on.
|
|
my $volume;
|
|
|
|
# First check /, then other volumes on the box.
|
|
my $cur_test = `pkgutil --pkgs=$pkg_id`;
|
|
if ( $cur_test =~ m/$pkg_id/ ) {
|
|
$volume = '/';
|
|
} else {
|
|
opendir( my $dh, '/Volumes' ) or die "Can't list Volumes: $!\n";
|
|
foreach my $dir ( readdir($dh) ) {
|
|
next if $dir =~ m/^\./; # Skip dotfiles.
|
|
|
|
my $path = File::Spec->rel2abs( $dir, '/Volumes' );
|
|
next if !( -d $path ); # Skip anything that isn't a directory.
|
|
|
|
my $cur_test = `pkgutil --pkgs=$pkg_id --volume '$path'`;
|
|
if ( $cur_test =~ m/$pkg_id/ ) {
|
|
$volume = $path;
|
|
last;
|
|
}
|
|
}
|
|
}
|
|
|
|
die "Pandoc not installed.\n" if !( defined($volume) );
|
|
|
|
# Get the list of files to remove.
|
|
my @pkg_files = `pkgutil --volume '$volume' --only-files --files '$pkg_id'`;
|
|
@pkg_files = map { chomp; File::Spec->rel2abs($_, $volume) } @pkg_files;
|
|
|
|
# Confirm uninistall with the user.
|
|
print "The following files will be deleted:\n\n";
|
|
print join("\n", @pkg_files);
|
|
print "\n\n";
|
|
print "Do you want to proceed and uninstall pandoc (Y/N)?";
|
|
my $input = <STDIN>;
|
|
|
|
if ($input =~ m/^[Yy]/) {
|
|
|
|
# Actually remove the files.
|
|
foreach my $file (@pkg_files) {
|
|
if ( -e $file ) {
|
|
if ( system( 'sudo', 'rm', $file ) == 0 ) {
|
|
warn "Deleted $file\n";
|
|
} else {
|
|
warn "Unable to delete $file: $?\n";
|
|
die "Aborting Uninstall.\n";
|
|
}
|
|
} else {
|
|
warn "File $file does not exist. Skipping.\n";
|
|
}
|
|
}
|
|
|
|
# Clean up the install.
|
|
if (system('sudo', 'pkgutil', '--forget', $pkg_id, '--volume', $volume) != 0) {
|
|
die "Unable to clean up install: $?\n";
|
|
}
|
|
|
|
} else {
|
|
|
|
print "OK, aborting uninstall.\n";
|
|
exit;
|
|
}
|
|
|
|
print "Pandoc has been successfully uninstalled.\n";
|
|
exit;
|