????

Your IP : 18.116.69.53


Current Path : /proc/322915/root/scripts/
Upload File :
Current File : //proc/322915/root/scripts/updateuserdatacache

#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/updateuserdatacache             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

# ignore our parent if it dies as this could result in
# a blank userdatadomains files
$SIG{'HUP'} = 'IGNORE';
$SIG{'INT'} = 'IGNORE';

use strict;
use warnings;

use Getopt::Long                          ();
use Digest::MD5                           ();    #speed up loading config
use Cpanel::Config::userdata::UpdateCache ();
use Cpanel::Logger                        ();

my $logger = Cpanel::Logger->new();

if ( $> != 0 ) {
    $logger->die("This program can only be run as root");
}

my ( $collect, $force, $help );
if (
    !Getopt::Long::GetOptions(
        "collect!" => \$collect,
        "force!"   => \$force,
        "help!"    => \$help
    )
) {
    print_usage();
    $logger->die("Invalid command line options");
}

if ($help) {
    print_usage();
    exit();
}

my @users = @ARGV;
my $args  = { 'force' => $force, 'collect' => $collect };

if (@users) {
    eval { Cpanel::Config::userdata::UpdateCache::update( @users, $args ) };
}
else {
    eval { Cpanel::Config::userdata::UpdateCache::update_all_users($args) };
}
if ($@) {
    $logger->warn("An error occurred in building the userdata cache: $@");
}

exit();

sub print_usage {
    print <<"USAGE";

$0 [ options ] [ usernames ... ]

    Generates the userdata cache file for the specified users (or *all* users
    if none are specified) in /var/cpanel/userdata/USERNAME/cache, if any
    changes have been made for that user since the last time the cache file was
    generated; and if any user caches were udpated, concatenate all the users'
    cache files into one central file, /etc/userdatadomains.

    Options:

        --force     Force the regeneration of the specified user cache file(s)
                    (or all user cache files, if run without arguments), even
                    if nothing has changed since the last time the cache was
                    generated

        --collect   Force the concatenation of individual users' cache files
                    into the central cache, even if nothing has changed; if
                    run without arguments, *only* the concatenation will be
                    performed (such as when deleting an account).

USAGE
}