MMCT TEAM
Server IP : 103.53.40.154  /  Your IP : 13.59.234.182
Web Server : Apache
System : Linux md-in-35.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : ppcad7no ( 715)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /../scripts/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //../scripts/comparecdb
#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/comparecdb                      Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

use Fcntl    ();
use CDB_File ();

if ( $ARGV[0] eq '--bincheck' ) {
    print "BinCheck ok\n";
    exit();
}

if ( defined $ARGV[0] && -e $ARGV[0] && defined $ARGV[1] && -e $ARGV[1] ) {
    my %CDB_FILE_A;
    my $ta = tie %CDB_FILE_A, 'CDB_File', $ARGV[0];
    die "$ARGV[0] does not appear to be a valid CDB file." if !$ta;

    my %CDB_FILE_B;
    my $tb = tie %CDB_FILE_B, 'CDB_File', $ARGV[1];
    die "$ARGV[1] does not appear to be a valid CDB file." if !$tb;

    my %b_copy = (%CDB_FILE_B);    # we need a copy since you can't delete() from this tied-readonly hash

    # does A exist in B
    for my $k ( sort keys %CDB_FILE_A ) {
        if ( !exists $CDB_FILE_B{$k} ) {
            print "$ARGV[1] is missing “$k”\n";
        }
        else {
            delete $b_copy{$k};    # we've seen it
        }
    }

    # any keys in B that were not in A
    for my $y ( sort keys %b_copy ) {
        print "$ARGV[1] has additional “$y”\n";
    }
}
else {
    print "This tool is for comparing the contents of 2 CDB files.\n";
    print "Example: $0 /var/cpanel/locale/themes/x3/en.cdb /var/cpanel/locale/themes/x3/fr.cdb\n\n";
    print "Usage: $0 [cdb file a] [cdb file b]\n";
}

MMCT - 2023