File "staging.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/mojo-marketplace-wp-plugin/inc/cli/staging.php
File size: 3.21 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ( ! class_exists( 'WP_CLI' ) ) {
return;
}
/**
* Class EIG_WP_CLI_Staging
*
* This class is instantiated in /inc/cli-init.php
*/
class EIG_WP_CLI_Staging extends EIG_WP_CLI_Command {
/**
* @var array - Subcommand actions used to create/modify staging environments.
*/
protected static $valid_actions = array(
'create',
'clone',
'destroy',
'sso_staging',
'deploy',
'deploy_files',
'deploy_db',
'deploy_files_db',
'save_state',
'restore_state',
'sso_production',
);
/**
* Used internally to create staging environment.
*
* @param $args null
* @param $assoc_args array
* @throws \WP_CLI\ExitException
*/
public function __invoke( $args, $assoc_args ) {
if ( ! is_array( $args ) || ! isset( $args[0] ) ) {
$this->error( 'No sub-command provided' );
}
if ( ! in_array( $args[0], static::$valid_actions ) ) {
$this->error( 'Invalid action' );
}
switch ( $args[0] ) {
case 'create':
set_transient( 'mm_fresh_staging', true, 300 );
$json_response = mm_cl( 'create' );
break;
case 'clone':
$json_response = mm_cl( 'clone' );
break;
case 'destroy':
$json_response = mm_cl( 'destroy' );
break;
case 'sso_staging':
$user = get_users(
array(
'role' => 'administrator',
'number' => 1,
)
);
if ( is_array( $user ) && is_a( $user[0], 'WP_User' ) ) {
$user = $user[0];
$user = $user->ID;
}
$json_response = mm_cl( 'sso_staging', array( $user ) );
break;
case 'sso_production':
$user = get_users(
array(
'role' => 'administrator',
'number' => 1,
)
);
if ( is_array( $user ) && is_a( $user[0], 'WP_User' ) ) {
$user = $user[0];
$user = $user->ID;
}
$json_response = mm_cl( 'sso_production', array( $user ) );
break;
case 'deploy':
if ( ! isset( $args[1] ) || ! in_array( $args[1], array( 'files', 'db', 'database', 'all', 'both' ) ) ) {
$this->error( 'Invalid deploy type' );
}
if ( 'files' == $args[1] ) {
$json_response = mm_cl( 'deploy_files' );
}
if ( 'db' == $args[1] || 'database' == $args[1] ) {
$json_response = mm_cl( 'deploy_db' );
}
if ( 'all' == $args[1] || 'both' == $args[1] ) {
$json_response = mm_cl( 'deploy_files_db' );
}
break;
case 'deploy_files':
$json_response = mm_cl( 'deploy_files' );
break;
case 'deploy_db':
$json_response = mm_cl( 'deploy_db' );
break;
case 'deploy_files_db':
$json_response = mm_cl( 'deploy_files_db' );
break;
case 'save_state':
$json_response = mm_cl( 'save_state' );
break;
case 'restore_state':
if ( ! isset( $assoc_args['revision'] ) ) {
$this->error( 'Revision not provided.' );
}
$json_response = mm_cl( 'restore_state', array( esc_attr( $assoc_args['revision'] ) ) );
break;
}
$json_response = preg_replace( '/[^[:print:]]/', '', $json_response );
$json_response = str_replace( '[H[2J', '', $json_response );
if ( $response = json_decode( $json_response ) ) {
if ( 'success' == $response->status ) {
$this->success( $response->message );
} else {
$this->error( $response->message );
}
} else {
$this->error( 'Invalid JSON response' );
}
}
}