1111
1212namespace PHPCSDiff ;
1313
14+ use GetOpt \GetOpt ;
1415use PHPCSDiff \Log \LoggerInterface ;
1516
1617define ( 'PHPCS_DIFF_PLUGIN_DIR ' , str_replace ( '\\' , '/ ' , dirname ( dirname ( __FILE__ ) ) ) );
@@ -32,24 +33,26 @@ echo "\n$logo\n" . OUTPUT_UNDERLINED . COLOUR_SECONDARY . 'https://github.com/za
3233
3334require_once PHPCS_DIFF_PLUGIN_DIR . '/vendor/autoload.php ' ;
3435
35- $ getopt = new \ GetOpt \ GetOpt (
36+ $ getopt = new GetOpt (
3637 [
37- [ 's ' , 'start_revision ' , \ GetOpt \ GetOpt::REQUIRED_ARGUMENT ],
38- [ 'e ' , 'end_revision ' , \ GetOpt \ GetOpt::REQUIRED_ARGUMENT ],
38+ [ 's ' , 'start_revision ' , GetOpt::REQUIRED_ARGUMENT ],
39+ [ 'e ' , 'end_revision ' , GetOpt::REQUIRED_ARGUMENT ],
3940 [ 't ' , 'tolerance ' ],
40- [ 'standard ' , \ GetOpt \ GetOpt::REQUIRED_ARGUMENT ],
41+ [ 'standard ' , GetOpt::REQUIRED_ARGUMENT ],
4142 [ 'log_level ' ],
42- [ 'ignore_space_changes ' , \GetOpt \GetOpt::NO_ARGUMENT ],
43- [ 'sniff_unstaged ' , \GetOpt \GetOpt::NO_ARGUMENT ],
44- [ 'no_colours ' , \GetOpt \GetOpt::NO_ARGUMENT ],
45- [ 'colour_primary ' , \GetOpt \GetOpt::REQUIRED_ARGUMENT ],
46- [ 'colour_secondary ' , \GetOpt \GetOpt::REQUIRED_ARGUMENT ],
47- [ 'excluded_exts ' , \GetOpt \GetOpt::OPTIONAL_ARGUMENT ],
43+ [ 'ignore_space_changes ' , GetOpt::NO_ARGUMENT ],
44+ [ 'sniff_unstaged ' , GetOpt::NO_ARGUMENT ],
45+ [ 'no_colours ' , GetOpt::NO_ARGUMENT ],
46+ [ 'colour_primary ' , GetOpt::REQUIRED_ARGUMENT ],
47+ [ 'colour_secondary ' , GetOpt::REQUIRED_ARGUMENT ],
48+ [ 'excluded_exts ' , GetOpt::OPTIONAL_ARGUMENT ],
49+ [ 'standards_location ' , GetOpt::OPTIONAL_ARGUMENT ],
50+ [ 'default_standards_location ' , GetOpt::NO_ARGUMENT ],
4851 ]
4952);
5053
5154$ getopt ->getOption ( 'tolerance ' , true )
52- ->setMode ( \ GetOpt \ GetOpt::OPTIONAL_ARGUMENT )
55+ ->setMode ( GetOpt::OPTIONAL_ARGUMENT )
5356 ->setValidation (
5457 function ( $ value ) {
5558 return in_array ( $ value , [ 'blockers ' , 'warnings ' , 'notes ' , 'none ' ] );
@@ -58,7 +61,7 @@ $getopt->getOption( 'tolerance', true )
5861 ->setDefaultValue ( 'notes ' );
5962
6063$ getopt ->getOption ( 'log_level ' , true )
61- ->setMode ( \ GetOpt \ GetOpt::OPTIONAL_ARGUMENT )
64+ ->setMode ( GetOpt::OPTIONAL_ARGUMENT )
6265 ->setValidation ( 'is_numeric ' )
6366 ->setDefaultValue ( LoggerInterface::WARNING );
6467
@@ -78,6 +81,8 @@ $log_level = $getopt->getOption( 'log_level' );
7881$ ignore_space_changes = $ getopt ->offsetExists ( 'ignore_space_changes ' );
7982$ no_colours = $ getopt ->offsetExists ( 'no_colours ' );
8083$ excluded_exts = $ getopt ->getOption ( 'excluded_exts ' );
84+ $ standards_location = $ getopt ->getOption ( 'standards_location ' );
85+ $ default_standards_location = $ getopt ->getOption ( 'default_standards_location ' );
8186
8287$ sniff_unstaged = $ getopt ->offsetExists ( 'sniff_unstaged ' );
8388if ( $ sniff_unstaged ) {
@@ -125,8 +130,14 @@ if ( $no_colours ) {
125130 $ colour_secondary = $ getopt ->offsetExists ( 'colour_secondary ' ) ? arg_to_colour ( $ getopt ->getOption ( 'colour_secondary ' ), COLOUR_SECONDARY ) : COLOUR_SECONDARY ;
126131}
127132
133+ if ( $ default_standards_location ) {
134+ $ standards_location = null ;
135+ } elseif ( null === $ standards_location ) {
136+ $ standards_location = PHPCS_DIFF_STANDARDS ;
137+ }
138+
128139$ logger = new Log \ShellLogger ( (int ) $ log_level );
129- $ options = [ 'ignore-space-change ' => $ ignore_space_changes ];
140+ $ options = [ 'ignore-space-change ' => $ ignore_space_changes, ' standards_location ' => $ standards_location ];
130141$ version_control = new Backends \Git ( '' , $ logger , $ options );
131142$ controller = new Main ( $ version_control , $ logger , $ options );
132143$ controller ->set_phpcs_standard ( $ phpcs_standard );
0 commit comments