protected function get_main_file_data() {
		$files = new IteratorIterator( new DirectoryIterator( $this->source ) );

		/** @var DirectoryIterator $file */
		foreach ( $files as $file ) {
			// wp-content/themes/my-theme/style.css
			if ( $file->isFile() && 'style' === $file->getBasename( '.css' ) && $file->isReadable() ) {
				$theme_data = static::get_file_data( $file->getRealPath(), array_combine( $this->get_file_headers( 'theme' ), $this->get_file_headers( 'theme' ) ) );

				// Stop when it contains a valid Theme Name header.
				if ( ! empty( $theme_data['Theme Name'] ) ) {
					WP_CLI::log( 'Theme stylesheet detected.' );
					WP_CLI::debug( sprintf( 'Theme stylesheet: %s', $file->getRealPath() ), 'make-pot' );

					$this->project_type = 'theme';

					return $theme_data;
				}
			}

			// wp-content/themes/my-themes/theme-a/style.css
			if ( $file->isDir() && ! $file->isDot() && is_readable( $file->getRealPath() . '/style.css' ) ) {
				$theme_data = static::get_file_data( $file->getRealPath() . '/style.css', array_combine( $this->get_file_headers( 'theme' ), $this->get_file_headers( 'theme' ) ) );

				// Stop when it contains a valid Theme Name header.
				if ( ! empty( $theme_data['Theme Name'] ) ) {
					WP_CLI::log( 'Theme stylesheet detected.' );
					WP_CLI::debug( sprintf( 'Theme stylesheet: %s', $file->getRealPath() . '/style.css' ), 'make-pot' );

					$this->project_type = 'theme';

					return $theme_data;
				}
			}

			// wp-content/plugins/my-plugin/my-plugin.php
			if ( $file->isFile() && $file->isReadable() && 'php' === $file->getExtension() ) {
				$plugin_data = static::get_file_data( $file->getRealPath(), array_combine( $this->get_file_headers( 'plugin' ), $this->get_file_headers( 'plugin' ) ) );

				// Stop when we find a file with a valid Plugin Name header.
				if ( ! empty( $plugin_data['Plugin Name'] ) ) {
					WP_CLI::log( 'Plugin file detected.' );
					WP_CLI::debug( sprintf( 'Plugin file: %s', $file->getRealPath() ), 'make-pot' );

					$this->project_type = 'plugin';

					return $plugin_data;
				}
			}
		}

		WP_CLI::debug( 'No valid theme stylesheet or plugin file found, treating as a regular project.', 'make-pot' );

		return [];
	}
protected function get_main_file_data() {
		$files = new IteratorIterator( new DirectoryIterator( $this->source ) );

		/** @var DirectoryIterator $file */
		foreach ( $files as $file ) {
			// wp-content/themes/my-theme/style.css
			if ( $file->isFile() && 'style' === $file->getBasename( '.css' ) && $file->isReadable() ) {
				$theme_data = static::get_file_data( $file->getRealPath(), array_combine( $this->get_file_headers( 'theme' ), $this->get_file_headers( 'theme' ) ) );

				// Stop when it contains a valid Theme Name header.
				if ( ! empty( $theme_data['Theme Name'] ) ) {
					WP_CLI::log( 'Theme stylesheet detected.' );
					WP_CLI::debug( sprintf( 'Theme stylesheet: %s', $file->getRealPath() ), 'make-pot' );

					$this->project_type = 'theme';

					return $theme_data;
				}
			}

			// wp-content/themes/my-themes/theme-a/style.css
			if ( $file->isDir() && ! $file->isDot() && is_readable( $file->getRealPath() . '/style.css' ) ) {
				$theme_data = static::get_file_data( $file->getRealPath() . '/style.css', array_combine( $this->get_file_headers( 'theme' ), $this->get_file_headers( 'theme' ) ) );

				// Stop when it contains a valid Theme Name header.
				if ( ! empty( $theme_data['Theme Name'] ) ) {
					WP_CLI::log( 'Theme stylesheet detected.' );
					WP_CLI::debug( sprintf( 'Theme stylesheet: %s', $file->getRealPath() . '/style.css' ), 'make-pot' );

					$this->project_type = 'theme';

					return $theme_data;
				}
			}

			// wp-content/plugins/my-plugin/my-plugin.php
			if ( $file->isFile() && $file->isReadable() && 'php' === $file->getExtension() ) {
				$plugin_data = static::get_file_data( $file->getRealPath(), array_combine( $this->get_file_headers( 'plugin' ), $this->get_file_headers( 'plugin' ) ) );

				// Stop when we find a file with a valid Plugin Name header.
				if ( ! empty( $plugin_data['Plugin Name'] ) ) {
					WP_CLI::log( 'Plugin file detected.' );
					WP_CLI::debug( sprintf( 'Plugin file: %s', $file->getRealPath() ), 'make-pot' );

					$this->project_type = 'plugin';

					return $plugin_data;
				}
			}
		}

		WP_CLI::debug( 'No valid theme stylesheet or plugin file found, treating as a regular project.', 'make-pot' );

		return [];
	}
protected function get_main_file_data ( ) { $ files = new IteratorIterator ( new DirectoryIterator ( $ this -> source ) ) ; /** @var DirectoryIterator $file */ foreach ( $ files as $ file ) { // wp-content/themes/my-theme/style.css if ( $ file -> isFile ( ) && 'style' === $ file -> getBasename ( '.css' ) && $ file -> isReadable ( ) ) { $ theme_data = static :: get_file_data ( $ file -> getRealPath ( ) , array_combine ( $ this -> get_file_headers ( 'theme' ) , $ this -> get_file_headers ( 'theme' ) ) ) ; // Stop when it contains a valid Theme Name header. if ( ! empty ( $ theme_data [ 'Theme Name' ] ) ) { WP_CLI :: log ( 'Theme stylesheet detected.' ) ; WP_CLI :: debug ( sprintf ( 'Theme stylesheet: %s' , $ file -> getRealPath ( ) ) , 'make-pot' ) ; $ this -> project_type = 'theme' ; return $ theme_data ; } } // wp-content/themes/my-themes/theme-a/style.css if ( $ file -> isDir ( ) && ! $ file -> isDot ( ) && is_readable ( $ file -> getRealPath ( ) . '/style.css' ) ) { $ theme_data = static :: get_file_data ( $ file -> getRealPath ( ) . '/style.css' , array_combine ( $ this -> get_file_headers ( 'theme' ) , $ this -> get_file_headers ( 'theme' ) ) ) ; // Stop when it contains a valid Theme Name header. if ( ! empty ( $ theme_data [ 'Theme Name' ] ) ) { WP_CLI :: log ( 'Theme stylesheet detected.' ) ; WP_CLI :: debug ( sprintf ( 'Theme stylesheet: %s' , $ file -> getRealPath ( ) . '/style.css' ) , 'make-pot' ) ; $ this -> project_type = 'theme' ; return $ theme_data ; } } // wp-content/plugins/my-plugin/my-plugin.php if ( $ file -> isFile ( ) && $ file -> isReadable ( ) && 'php' === $ file -> getExtension ( ) ) { $ plugin_data = static :: get_file_data ( $ file -> getRealPath ( ) , array_combine ( $ this -> get_file_headers ( 'plugin' ) , $ this -> get_file_headers ( 'plugin' ) ) ) ; // Stop when we find a file with a valid Plugin Name header. if ( ! empty ( $ plugin_data [ 'Plugin Name' ] ) ) { WP_CLI :: log ( 'Plugin file detected.' ) ; WP_CLI :: debug ( sprintf ( 'Plugin file: %s' , $ file -> getRealPath ( ) ) , 'make-pot' ) ; $ this -> project_type = 'plugin' ; return $ plugin_data ; } } } WP_CLI :: debug ( 'No valid theme stylesheet or plugin file found, treating as a regular project.' , 'make-pot' ) ; return [ ] ; }
Retrieves the main file data of the plugin or theme.

@return array
Retrieves the main file data of the plugin or theme .