Making WordPress.org


Ignore:
Timestamp:
04/30/2017 04:00:54 PM (7 years ago)
Author:
ocean90
Message:

Plugin Directory: Introduce I18n_Import::get_plugin_svn_url() and use it in the code/readme importers.

Also move the constructor to the parent class.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/i18n/class-code-import.php

    r5198 r5444  
    22namespace WordPressdotorg\Plugin_Directory\CLI\I18N;
    33
     4use Exception;
    45use WordPressdotorg\Plugin_Directory\Readme\Parser;
     6use WordPressdotorg\Plugin_Directory\Tools\Filesystem;
    57use WordPressdotorg\Plugin_Directory\Tools\SVN;
    6 use WordPressdotorg\Plugin_Directory\Tools\Filesystem;
    7 use Exception;
    88use WP_Error;
    99
     
    1414 */
    1515class Code_Import extends I18n_Import {
    16     const PLUGIN_SVN_BASE = 'https://plugins.svn.wordpress.org';
    17 
    18     /**
    19      * Slug of the plugin.
    20      *
    21      * @var string
    22      */
    23     private $plugin;
    24 
    25     /**
    26      * Constructor.
    27      *
    28      * @param string $plugin The plugin slug.
    29      */
    30     public function __construct( $plugin ) {
    31         $this->plugin = $plugin;
    32     }
    3316
    3417    /**
     
    4023     */
    4124    public function import_from_tag( $tag ) {
    42         $plugin_url = self::PLUGIN_SVN_BASE . "/{$this->plugin}/{$tag}";
     25        $svn_url = $this->get_plugin_svn_url( $tag );
    4326
    44         $files = SVN::ls( $plugin_url );
     27        $files = SVN::ls( $svn_url );
    4528        if ( ! $files ) {
    4629            throw new Exception( "Plugin has no files in {$tag}." );
     
    5033        $export_directory = $tmp_directory . '/export';
    5134
    52         $res = SVN::export( $plugin_url, $export_directory, [ 'ignore-externals' ] );
     35        $res = SVN::export( $svn_url, $export_directory, [ 'ignore-externals' ] );
    5336        if ( ! $res['result'] ) {
    5437            throw new Exception( 'Plugin export failed.' );
     
    5740        $valid = $this->is_plugin_valid( $export_directory );
    5841        if ( is_wp_error( $valid ) ) {
    59             throw new Exception( 'Plugin is not compatible with language packs.' );
     42            throw new Exception( 'Plugin is not compatible with language packs: ' . $valid->get_error_message() );
    6043        }
    6144
     
    6750        $makepot  = new \MakePOT;
    6851
    69         if ( ! $makepot->wp_plugin( $export_directory, $pot_file, $this->plugin ) || ! file_exists( $pot_file ) ) {
     52        if ( $makepot->wp_plugin( $export_directory, $pot_file, $this->plugin ) || ! file_exists( $pot_file ) ) {
    7053            throw new Exception( "POT file couldn't be created." );
    7154        }
     
    9477     */
    9578    private function is_plugin_valid( $export_directory ) {
    96         $error  = new WP_Error();
    9779        $readme = new Parser( $this->find_readme_file( $export_directory ) );
    9880
    9981        // Whether plugin files should be checked for valid text domains.
    10082        if ( empty( $readme->requires ) || version_compare( $readme->requires, '4.6', '<' ) ) {
     83            $error  = new WP_Error();
    10184            $esc_export_directory = escapeshellarg( $export_directory );
    10285
     
    122105                return $error;
    123106            }
    124 
    125107        }
    126108
Note: See TracChangeset for help on using the changeset viewer.