Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
Plugins
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 1
 contains
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3namespace CirrusSearch\Maintenance;
4
5class Plugins {
6    // map from elasticsearch plugin name to opensearch
7    // plugin name.
8    private const ALIASES = [
9        'analysis-stconvert' => 'opensearch-analysis-stconvert',
10        'experimental-highlighter' => 'cirrus-highlighter',
11        'extra' => 'opensearch-extra',
12        'extra-analysis-esperanto' => 'opensearch-extra-analysis-esperanto',
13        'extra-analysis-homoglyph' => 'opensearch-extra-analysis-homoglyph',
14        'extra-analysis-khmer' => 'opensearch-extra-analysis-khmer',
15        'extra-analysis-serbian' => 'opensearch-extra-analysis-serbian',
16        'extra-analysis-slovak' => 'opensearch-extra-analysis-slovak',
17        'extra-analysis-textify' => 'opensearch-extra-analysis-textify',
18        'extra-analysis-turkish' => 'opensearch-extra-analysis-turkish',
19        'extra-analysis-ukrainian' => 'opensearch-extra-analysis-ukrainian',
20    ];
21
22    /**
23     * @param string $plugin The name of the elasticsearch plugin to look for
24     * @param string[] $available The set of installed plugins
25     * @return bool True when the plugin is available
26     */
27    public static function contains( $plugin, $available ) {
28        if ( in_array( $plugin, $available ) ) {
29            return true;
30        }
31        if ( isset( self::ALIASES[$plugin] ) &&
32            in_array( self::ALIASES[$plugin], $available )
33        ) {
34            return true;
35        }
36
37        return false;
38    }
39}