#!/bin/sh
eval 'if [ -x /usr/local/cpanel/3rdparty/bin/perl ]; then exec /usr/local/cpanel/3rdparty/bin/perl -x -- $0 ${1+"$@"}; else exec /usr/bin/perl -x $0 ${1+"$@"}; fi;'
if 0;

#!/usr/bin/perl

use strict;

print "Uninstalling cPGS Files..\n";
open( my $lang, '<', '/usr/local/cpanel/lang/english' );
my @langf = (<$lang>);
close($lang);

open( my $lang, '>', '/usr/local/cpanel/lang/english' );
foreach my $line (@langf) {
    if ( $line =~ /^GS/ ) { next; }
    print $lang "$line";
}
close($lang);

system( "rm", "-f",  "/usr/local/cpanel/whostmgr/docroot/cgi/addon_gs.cgi" );
system( "rm", "-f",  "/usr/local/cpanel/whostmgr/docroot/cgi/gsparseform.pl" );
system( "rm", "-rf", "/usr/local/cpanel/base/frontend/gs/" );
system( "rm", "-rf", "/usr/local/cpanel/base/frontend/x/gameserv/" );
system( "rm", "-rf", "/usr/local/cpanel/base/frontend/x2/gameserv/" );
system( "rm", "-rf", "/usr/local/cpanel/base/frontend/x3/gameserv/" );
system( "rm", "-rf", "/usr/local/cpanel/base/frontend/x3mail/gameserv/" );
system( "rm", "-f",  "/usr/local/cpanel/Cpanel/GameServer.pm" );
system( "rm", "-f",  "/usr/local/cpanel/base/frontend/x/cells/GameServer.html" );
system( "rm", "-f",  "/usr/local/cpanel/base/frontend/x2/cells/GameServer.html" );
system( "rm", "-f",  "/usr/local/cpanel/base/frontend/x/mainicons/cPGS40.gif" );
system( "rm", "-f",  "/usr/local/cpanel/bin/cpgs_chk" );
system( "rm", "-f",  "/usr/local/cpanel/bin/cpgs_sslclient.pl" );
system( "rm", "-f",  "/usr/local/cpanel/bin/cpgs_pkg" );
system( "rm", "-f",  "/usr/local/cpanel/base/frontend/x/mainicons/cPGS.gif" );
system( "rm", "-f",  "/usr/local/cpanel/base/frontend/x/mainicons/cPGS40.gif" );
system( "rm", "-f",  "/var/cpanel/cpgs_chk" );
system( "rm", "-f",  "/var/cpanel/cpgsd.pl" );
system( "rm", "-f",  "/usr/local/cpanel/libexec/cpgsd.pl" );
system( "rm", "-f",  "/var/cpanel/addonmoduleversions/cpgs" );
system( "rm", "-rf", "/var/cpanel/cpgs" );

print "Removing cPGS from /var/cpanel/addonmodules\n";
if ( open( my $am_fh, '<', '/var/cpanel/addonmodules' ) ) {
    my @cont = (<$am_fh>);
    close($am_fh);
    if ( open( my $am_fh, '>', '/var/cpanel/addonmodules' ) ) {
        foreach my $item (@cont) {
            chomp($item);
            print $am_fh "$item\n";
        }
        close($am_fh);
    }
}

system( "touch", "/usr/local/cpanel/base/frontend/x3/dynamicui.conf" );

print "Removing cpgs_cron.pl from /etc/crontab ..<br>\n";
open( my $cron_fh, '<', '/etc/crontab' ) or die print "Could not open /etc/crontab .. $!\n";
my @etcr = (<$cron_fh>);
close($cron_fh);
open( my $cron_fh, '>', '/etc/crontab' ) or die print "Could not open /etc/crontab .. $!\n";
foreach my $line (@etcr) {
    if ( $line =~ /(cpgs_cron.pl|cpgs_chk)/ ) {
        next;
    }
    else {
        print $cron_fh $line;
    }
}
close($cron_fh);

print "Killing cPGSD daemon..<br>\n";
if(open(my $pidfile,'<', '/var/cpanel/cpgsd.pid' ) ) {
    my $r_pid = <$pidfile>;
    close($pidfile);
    kill 15, $r_pid;
    sleep 2;
    kill 9, $r_pid;
}

`/usr/local/cpanel/bin/unregister_cpanelplugin /var/cpanel/registered_cpanelplugins/cpgs`;

# unregister with appconfig
if( -x '/usr/local/cpanel/bin/unregister_appconfig' ) {
    system('/usr/local/cpanel/bin/unregister_appconfig','appconfig/cpgs.conf');
} else {
    unlink '/var/cpanel/apps/cpgs.conf';
}

print "The Gameserver Addon files have been deleted\n";
print "If you do not plan on installing it again, feel free to delete /var/cpanel/cpgs/gameserv*.cfg also.\n";
print "You will also need to delete the cpgsd.pl daemon from any remote gameserver boxes.\n";
