!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux web25.us.cloudlogin.co 5.10.237-xeon-hst #1 SMP Mon May 5 15:10:04 UTC 2025 x86_64 

uid=233359(alpastrology) gid=888(tty) groups=888(tty),33(tape) 

Safe-mode: OFF (not secure)

/usr/lib64/perl5/vendor_perl/Prima/VB/   drwxr-xr-x
Free 6181.9 GB of 6263.1 GB (98.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     prima-cfgmaint.pl (8.29 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
use strict;
use warnings;
use Prima::VB::CfgMaint;

die <<ABOUT unless @ARGV;
format: cfgmaint [options] command object [parameters]
options:
   -r    use root config to write
   -b    use both user and root config to read
   -x    do not write backups
   -o    read-only mode
   -p    execute 'use Prima;' code
commands:
   a  - add     p|m    name
   l  - list    w|p|m  ( w - [page])
   d  - remove  w|p|m  name
   r  - rename  w|p    name new_name
   m  - move    w|p    name new_page or none to end
objects:
   w  - widgets
   p  - pages
   m  - modules

examples:
   cfgmaint -r a m CPAN/Prima/VB/New/MyCtrls.pm
   cfgmaint -b l w
ABOUT

my @cmd  = ();
my $both = 0;
my $ro   = 0;
$Prima::VB::CfgMaint::systemWide = 0;
$Prima::VB::CfgMaint::backup     = 1;

for ( @ARGV) {
    push( @cmd, $_), next unless /^-/;
    $_ = lc $_;
    s/^-//;
    for ( split( '', $_)) {
        if ( $_ eq 'b') {
            $both = 1;
        } elsif ( $_ eq 'r') {
            $Prima::VB::CfgMaint::systemWide = 1;
        } elsif ( $_ eq 'x') {
            $Prima::VB::CfgMaint::backup = 0;
        } elsif ( $_ eq 'o') {
            $ro = 1;
        } elsif ( $_ eq 'p') {
            eval "use Prima;";
            die "$@" if $@;
        } else {
            die "Unknown option: $_\n";
        }
    }
}

sub check
{
    die "format: $cmd[0] [$_[0]]\n" if scalar @cmd < $_[1];
    my %h = map { $_ => 1 } split( '', $_[0]);
    return if $h{$cmd[1]};
    die "Invalid sub-option: $cmd[1]. Use one of '$_[0]'\n";
}

sub assert
{
    die "$_[1]\n" unless $_[0];
}


die "Insufficient number of parameters\n" if @cmd < 2;

$cmd[$_] = lc $cmd[$_] for 0..1;
if ( $cmd[0] eq 'a') {
    check('pm', 3);
} elsif ( $cmd[0] eq 'l') {
    check('wpm', 2);
} elsif( $cmd[0] eq 'd') {
    check('wpm', 3);
} elsif( $cmd[0] eq 'r') {
    check('wp', 4);
} elsif( $cmd[0] eq 'm') {
    check('wp', 3);
    die "Insufficient number of parameters\n" if @cmd < 4 && $cmd[1] eq 'w';
} else {
    die "Unknown action: $cmd[0]\n";
}

my @r;
if ( $both) {
    @r = Prima::VB::CfgMaint::read_cfg();
} else {
    @r = Prima::VB::CfgMaint::open_cfg();
}
die "$r[1]\n" unless $r[0];

if ( $cmd[0] eq 'a') {
    if ( $cmd[1] eq 'm') {
        my %cs = %Prima::VB::CfgMaint::classes;
        my %pg = map { $_ => 1} @Prima::VB::CfgMaint::pages;
        assert( Prima::VB::CfgMaint::add_module( $cmd[2]));
        for ( @Prima::VB::CfgMaint::pages) {
            next if $pg{$_};
            print "page '$_' added\n";
        }
        for ( keys %Prima::VB::CfgMaint::classes) {
            next if $cs{$_};
            print "widget '$_' added\n";
        }
    } elsif ( $cmd[1] eq 'p') {
        my %pg = map { $_ => 1} @Prima::VB::CfgMaint::pages;
        die "Page '$cmd[2]' already exists\n" if $pg{$cmd[2]};
        push @Prima::VB::CfgMaint::pages, $cmd[2];
    }
} elsif ( $cmd[0] eq 'l') {
    if ( $cmd[1] eq 'w') {
        my $ok = defined $cmd[2] ? 0 : 1;
        for ( keys %Prima::VB::CfgMaint::classes) {
            next if defined $cmd[2] && $Prima::VB::CfgMaint::classes{$_}-> {page} ne $cmd[2];
            print "$_\n";
            $ok = 1
        }
        die "Page '$cmd[2]' doesn't exist\n" unless $ok;
    } elsif ( $cmd[1] eq 'p') {
        print join( "\n", @Prima::VB::CfgMaint::pages);
    } elsif ( $cmd[1] eq 'm') {
        my %pk = ();
        $pk{$Prima::VB::CfgMaint::classes{$_}-> {module}} = 1
        for keys %Prima::VB::CfgMaint::classes;
        for ( keys %pk) { print "$_\n"; }
    }
    exit;
} elsif( $cmd[0] eq 'd') {
    if ( $cmd[1] eq 'w') {
        die "Widget '$cmd[2]' doesn't exist\n" unless
            $Prima::VB::CfgMaint::classes{$cmd[2]};
        delete $Prima::VB::CfgMaint::classes{$cmd[2]};
    } elsif ( $cmd[1] eq 'p') {
        my @p;
        for ( @Prima::VB::CfgMaint::pages) {
            push ( @p, $_) unless $cmd[2] eq $_;
        }
        die "Page '$cmd[2]' doesn't exist\n"
            if scalar @Prima::VB::CfgMaint::pages == scalar @p;
        @Prima::VB::CfgMaint::pages = @p;
        for ( keys %Prima::VB::CfgMaint::classes) {
            next unless $Prima::VB::CfgMaint::classes{$_}-> {page} eq $cmd[2];
            delete $Prima::VB::CfgMaint::classes{$_};
            print "Widget '$_' deleted\n";
        }
    } elsif ( $cmd[1] eq 'm') {
        my %dep;
        my $ok = 0;
        for ( keys %Prima::VB::CfgMaint::classes) {
            unless ( $Prima::VB::CfgMaint::classes{$_}-> {module} eq $cmd[2]) {
                $dep{$Prima::VB::CfgMaint::classes{$_}-> {page}} = 1;
                next;
            }
            delete $Prima::VB::CfgMaint::classes{$_};
            $ok = 1;
            print "widget '$_' removed\n";
        }
        my @newpages;
        for ( @Prima::VB::CfgMaint::pages) {
            push ( @newpages, $_) , next if $dep{$_};
            print "page '$_' removed\n";
        }
        @Prima::VB::CfgMaint::pages = @newpages;
        die "Package '$cmd[2]' not found\n" unless $ok;
    }
} elsif( $cmd[0] eq 'r') {
    if ( $cmd[1] eq 'w') {
        die "Widget '$cmd[2]' doesn't exist\n" unless
            $Prima::VB::CfgMaint::classes{$cmd[2]};
        die "Widget '$cmd[3]' already exist\n" if
            $Prima::VB::CfgMaint::classes{$cmd[3]};
        $Prima::VB::CfgMaint::classes{$cmd[3]} = $Prima::VB::CfgMaint::classes{$cmd[2]};
        delete $Prima::VB::CfgMaint::classes{$cmd[2]};
    } elsif ( $cmd[1] eq 'p') {
        my %pg = map { $_ => 1} @Prima::VB::CfgMaint::pages;
        die "Page '$cmd[2]' doesn't exist\n" unless $pg{$cmd[2]};
        die "Page '$cmd[3]' already exist\n" if $pg{$cmd[3]};
        for ( @Prima::VB::CfgMaint::pages) {
            $_ = $cmd[3], last if $_ eq $cmd[2];
        }
        for ( keys %Prima::VB::CfgMaint::classes) {
            $Prima::VB::CfgMaint::classes{$_}-> {page} = $cmd[3] if
                $Prima::VB::CfgMaint::classes{$_}-> {page} eq $cmd[2];
        }
    }
} elsif( $cmd[0] eq 'm') {
    if ( $cmd[1] eq 'w') {
        my %pg = map { $_ => 1} @Prima::VB::CfgMaint::pages;
        die "Page '$cmd[3]' doesn't exist\n" unless $pg{$cmd[3]};
        die "Widget '$cmd[2]' doesn't exist\n" unless
            $Prima::VB::CfgMaint::classes{$cmd[2]};
        $Prima::VB::CfgMaint::classes{$cmd[2]}-> {page} = $cmd[3];
    } elsif ( $cmd[1] eq 'p') {
        my %pg = map { $_ => 1} @Prima::VB::CfgMaint::pages;
        die "Page '$cmd[2]' doesn't exist\n" unless $pg{$cmd[2]};
        die "Page '$cmd[3]' doesn't exist\n" if ! exists $pg{$cmd[3]} && defined $cmd[3];
        my @p;
        for ( @Prima::VB::CfgMaint::pages) {
            push ( @p, $_) unless $cmd[2] eq $_;
        }
        @Prima::VB::CfgMaint::pages = @p;
        @p = ();
        if ( defined $cmd[3]) {
            for ( @Prima::VB::CfgMaint::pages) {
                push ( @p, $cmd[2]) if $_ eq $cmd[3];
                push ( @p, $_);
            }
            @Prima::VB::CfgMaint::pages = @p;
        } else {
            push @Prima::VB::CfgMaint::pages, $cmd[2];
        }
        print join( "\n", @Prima::VB::CfgMaint::pages);
    }
}

assert( Prima::VB::CfgMaint::write_cfg) unless $ro;

=pod

=head1 NAME

cfgmaint - configuration tool for Visual Builder

=head1 SYNTAX

cfgmaint [ -rbxop ] command object [ parameters ]

=head1 DESCRIPTION

Maintains widget palette configuration for the Visual Builder.
It can be stored in the system-wide and the local user config files.
C<cfgmaint> allows adding, renaming, moving, and deleting the
classes and pages in the Visual Builder widget palette.

=head1 USAGE

C<cfgmaint> is invoked with C<command> and C<object> arguments,
where C<command> defines the action to be taken, and C<object> -
the object to be handled.

=head2 Options

=over

=item -r

Write configuration to the system-wide config file

=item -b

Read configuration from both system-wide and user config files

=item -x

Do not write backups

=item -o

Read-only mode

=item -p

Execute C<use Prima;> code before start. This option
might be necessary when adding a module that relies on the toolkit
but does not invoke the code itself.

=back

=head2 Objects

=over

=item m

Selects a module. Valid for add, list, and remove commands.

=item p

Selects a page. Valid for all commands.

=item w

Selects a widget. Valid for list, remove, rename, and move commands.

=back

=head2 Commands

=over

=item a

Adds a new object to the configuration. Can be either a page or
a module.

=item d

Removes an object.

=item l

Prints object name. In case object is a widget, prints all
registered widgets. If the string is specified as an additional
parameter, it is treated as a page name and only widgets from
the page are printed.

=item r

Renames an object to a new name, which is passed as additional parameter.
Can be either a widget or a page.

=item m

If C<object> is a widget, relocates one or more widgets to a new page.
If C<object> is a page, moves the page before the page specified as an additional parameter,
or to the end if no additional page specified.

=back

=head1 EXAMPLE

Add a new module to the system-wide configuration:

    cfgmaint -r a m CPAN/Prima/VB/New/MyCtrls.pm

List widgets, present in both config files:

    cfgmaint -b l w

Rename a page:

    cfgmaint r p General Basic

=head1 FILES

F<Prima/VB/Config.pm>, F<~/.prima/vbconfig>

=head1 AUTHOR

Dmitry Karasik, E<lt>dmitry@karasik.eu.orgE<gt>.

=head1 SEE ALSO

L<VB>, L<Prima::VB::CfgMaint>


=cut


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0115 ]--