WordCamp Las Peñitas – WP-CLI

Presente en WordCamp Las Peñitas en Nicaragua sobre WP-CLI.

¡Gracias a los organizadores para la invitación y su hospitalidad!

Aunque ya añadiré mas sobre el evento, por ahora aquí tienen las transparencias en PDF.

Debajo, pueden verlas incluido desde SpeakerDeck, y también el codigo del plugin de backup:

¡Si tienen preguntas, deja un comentario aquí!

<?php

WP_CLI::add_command( 'migrate', 'DH_Migrate_Command' );

/**
 * DreamHost Migrate Plugin
 *
 * @package DH_Migrate_Command
 * @subpackage commands/community
 * @maintainer Mike Schroder
 */
class DH_Migrate_Command extends WP_CLI_Command {

	/**
	 * Guarda WordPress entero, encluyendo core, plugins y la base de datos.
 	 *
 	 * ## OPTIONS
 	 *
 	 * [<backup-filename>]
 	 * : Fichero donde guardar la copia de seguridad
 	 *
 	 * [--no-db]
 	 * : No crea copia de seguridad de la base de datos dentro del archivo creado
 	 *
 	 * [--db-name=<filename>]
 	 * : Guarda el base de datos en el archivo con el nombre <filename>
	 *
	 * @param array $args
	 * @param array $assoc_args
	 */
	function backup( $args, $assoc_args ) {
		$filename = $dbname = null;
		$backup_directory = '../';

		// Si no specifica un nombre para el fichero, usa "Titulo del blog.tar.gz"
		if ( empty( $args ) )
			$filename = $backup_directory . get_bloginfo() . '.tar.gz';
		else
			$filename = $args[0];

		// Si specifica --no-db, no guarda la base de datos.
		if ( ! isset( $assoc_args['no-db'] ) ) {
			$dbname = isset( $assoc_args['db-name'] ) ? $assoc_args['db-name'] : 'database_backup.sql';

			WP_CLI::run_command( array( 'db', 'export', $backup_directory . $dbname ), array() );
		}

		// Utilizamos esc_cmd para filtrar los argumentos automaticamente.
		// No podemos utilizar --exclude-vcs, porque no funciona en OSX.
		WP_CLI::line( "Guardando en $filename ..." );
		$result = WP_CLI::launch( \WP_CLI\Utils\esc_cmd( "
			tar
				--exclude '.git'
				--exclude '.svn'
				--exclude '.hg'
				--exclude '.bzr'
				-czf %s . -C %s %s
		", $filename, $backup_directory, $dbname ), false );

		// Si creimos una copia de la base de datos, borra la copia temporal.
		if ( $dbname && ! unlink( $backup_directory . $dbname ) )
			WP_CLI::warning( "No pude borrar la base de datos temporal, '$dbname'." );

		if ( 0 == $result ) {
			WP_CLI::success( "Copia de seguridad creado." );
		} else {
			WP_CLI::error( "Creatión de la copia de seguridad ha fallado." );
		}
	} // Termina backup
} // Termina DH_Migrate_Command

One thought on “WordCamp Las Peñitas – WP-CLI”

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.