diff --git a/class/command.php b/class/command.php index cee217e..98c2288 100644 --- a/class/command.php +++ b/class/command.php @@ -35,6 +35,27 @@ public function migrate( $args, $assoc_args ) { return; } + /** + * List all profiles. + * + * ## EXAMPLES + * + * wp wpsdb profiles + * + */ + + public function profiles() { + $result = wpsdb_profiles(); + + if ( $result ) { + WP_CLI::log( __( $result, 'wp-sync-db-cli' ) ); + return; + } + + WP_CLI::warning( __( 'You have no profiles.', 'wp-sync-db-cli' ) ); + return; + } + } WP_CLI::add_command( 'wpsdb', 'WPSDBCLI' ); diff --git a/class/wpsdb-cli.php b/class/wpsdb-cli.php index ab59116..872508b 100644 --- a/class/wpsdb-cli.php +++ b/class/wpsdb-cli.php @@ -10,6 +10,16 @@ function __construct( $plugin_file_path ) { if( ! $this->meets_version_requirements( '1.4b1' ) ) return; } + function cli_profiles() { + $wpsdb_settings = get_option( 'wpsdb_settings' ); + $profiles = []; + foreach ($wpsdb_settings['profiles'] as $index => $profile) { + $id = $index + 1; + array_push($profiles, "\t{$id} | {$profile['action']} => {$profile['name']}"); + } + return implode("\n", $profiles);; + } + function cli_migration( $profile ) { global $wpsdb; $wpsdb_settings = get_option( 'wpsdb_settings' ); diff --git a/wp-sync-db-cli.php b/wp-sync-db-cli.php index e356bd0..16b02cc 100644 --- a/wp-sync-db-cli.php +++ b/wp-sync-db-cli.php @@ -36,3 +36,11 @@ function wpsdb_migrate( $profile ) { } return $wpsdb_cli->cli_migration( $profile ); } + +function wpsdb_profiles() { + global $wpsdb_cli; + if( empty( $wpsdb_cli ) ) { + return new WP_Error( 'wpsdb_cli_error', __( 'WP Sync DB CLI class not available', 'wp-sync-db-cli' ) ); + } + return $wpsdb_cli->cli_profiles(); +}