@@ -345,41 +345,41 @@ public Base(String[] args) throws Exception {
345345 if (i < args .length )
346346 selectBoard = args [i ];
347347 else
348- showError (null , "Argument required for --board" , null );
348+ showError (null , "Argument required for --board" , 3 );
349349 continue ;
350350 }
351351 if (args [i ].equals ("--port" )) {
352352 i ++;
353353 if (i < args .length )
354354 selectPort = args [i ];
355355 else
356- showError (null , "Argument required for --port" , null );
356+ showError (null , "Argument required for --port" , 3 );
357357 continue ;
358358 }
359359 if (args [i ].equals ("--curdir" )) {
360360 i ++;
361361 if (i < args .length )
362362 currentDirectory = args [i ];
363363 else
364- showError (null , "Argument required for --curdir" , null );
364+ showError (null , "Argument required for --curdir" , 3 );
365365 continue ;
366366 }
367367 if (args [i ].equals ("--pref" )) {
368368 i ++;
369369 if (i < args .length )
370370 processPrefArgument (args [i ]);
371371 else
372- showError (null , "Argument required for --pref" , null );
372+ showError (null , "Argument required for --pref" , 3 );
373373 continue ;
374374 }
375375 if (args [i ].startsWith ("--" ))
376- showError (null , I18n .format (_ ("unknown option: {0}" ), args [i ]), null );
376+ showError (null , I18n .format (_ ("unknown option: {0}" ), args [i ]), 3 );
377377
378378 filenames .add (args [i ]);
379379 }
380380
381381 if ((doUpload || doVerify ) && filenames .size () != 1 )
382- showError (null , _ ("Must specify exactly one sketch file" ), null );
382+ showError (null , _ ("Must specify exactly one sketch file" ), 3 );
383383
384384 for (String path : filenames ) {
385385 // Fix a problem with systems that use a non-ASCII languages. Paths are
@@ -403,7 +403,7 @@ public Base(String[] args) throws Exception {
403403 String mess = I18n .format (_ ("Failed to open sketch: \" {0}\" " ), path );
404404 // Open failure is fatal in upload/verify mode
405405 if (doUpload || doVerify )
406- showError (null , mess , null );
406+ showError (null , mess , 2 );
407407 else
408408 showWarning (null , mess , null );
409409 }
@@ -460,22 +460,22 @@ protected void processBoardArgument(String selectBoard) {
460460 String [] split = selectBoard .split (":" , 4 );
461461
462462 if (split .length < 3 ) {
463- showError (null , I18n .format (_ ("{0}: Invalid board name, it should be of the form \" package:arch:board\" or \" package:arch:board:options\" " ), selectBoard ), null );
463+ showError (null , I18n .format (_ ("{0}: Invalid board name, it should be of the form \" package:arch:board\" or \" package:arch:board:options\" " ), selectBoard ), 3 );
464464 }
465465
466466 TargetPackage targetPackage = getTargetPackage (split [0 ]);
467467 if (targetPackage == null ) {
468- showError (null , I18n .format (_ ("{0}: Unknown package" ), split [0 ]), null );
468+ showError (null , I18n .format (_ ("{0}: Unknown package" ), split [0 ]), 3 );
469469 }
470470
471471 TargetPlatform targetPlatform = targetPackage .get (split [1 ]);
472472 if (targetPlatform == null ) {
473- showError (null , I18n .format (_ ("{0}: Unknown architecture" ), split [1 ]), null );
473+ showError (null , I18n .format (_ ("{0}: Unknown architecture" ), split [1 ]), 3 );
474474 }
475475
476476 TargetBoard targetBoard = targetPlatform .getBoard (split [2 ]);
477477 if (targetBoard == null ) {
478- showError (null , I18n .format (_ ("{0}: Unknown board" ), split [2 ]), null );
478+ showError (null , I18n .format (_ ("{0}: Unknown board" ), split [2 ]), 3 );
479479 }
480480
481481 selectBoard (targetBoard );
@@ -486,14 +486,14 @@ protected void processBoardArgument(String selectBoard) {
486486 String [] keyValue = option .split ("=" , 2 );
487487
488488 if (keyValue .length != 2 )
489- showError (null , I18n .format (_ ("{0}: Invalid option, should be of the form \" name=value\" " ), option , targetBoard .getId ()), null );
489+ showError (null , I18n .format (_ ("{0}: Invalid option, should be of the form \" name=value\" " ), option , targetBoard .getId ()), 3 );
490490 String key = keyValue [0 ].trim ();
491491 String value = keyValue [1 ].trim ();
492492
493493 if (!targetBoard .hasMenu (key ))
494- showError (null , I18n .format (_ ("{0}: Invalid option for board \" {1}\" " ), key , targetBoard .getId ()), null );
494+ showError (null , I18n .format (_ ("{0}: Invalid option for board \" {1}\" " ), key , targetBoard .getId ()), 3 );
495495 if (targetBoard .getMenuLabel (key , value ) == null )
496- showError (null , I18n .format (_ ("{0}: Invalid option for \" {1}\" option for board \" {2}\" " ), value , key , targetBoard .getId ()), null );
496+ showError (null , I18n .format (_ ("{0}: Invalid option for \" {1}\" option for board \" {2}\" " ), value , key , targetBoard .getId ()), 3 );
497497
498498 Preferences .set ("custom_" + key , targetBoard .getId () + "_" + value );
499499 }
@@ -503,7 +503,7 @@ protected void processBoardArgument(String selectBoard) {
503503 protected void processPrefArgument (String arg ) {
504504 String [] split = arg .split ("=" , 2 );
505505 if (split .length != 2 || split [0 ].isEmpty ())
506- showError (null , I18n .format (_ ("{0}: Invalid argument to --pref, should be of the form \" pref=value\" " ), arg ), null );
506+ showError (null , I18n .format (_ ("{0}: Invalid argument to --pref, should be of the form \" pref=value\" " ), arg ), 3 );
507507
508508 Preferences .set (split [0 ], split [1 ]);
509509 }
@@ -2418,12 +2418,20 @@ static public void showWarning(String title, String message, Exception e) {
24182418 }
24192419
24202420
2421+ static public void showError (String title , String message , Throwable e ) {
2422+ showError (title , message , e , 1 );
2423+ }
2424+
2425+ static public void showError (String title , String message , int exit_code ) {
2426+ showError (title , message , null , exit_code );
2427+ }
2428+
24212429 /**
24222430 * Show an error message that's actually fatal to the program.
24232431 * This is an error that can't be recovered. Use showWarning()
24242432 * for errors that allow P5 to continue running.
24252433 */
2426- static public void showError (String title , String message , Throwable e ) {
2434+ static public void showError (String title , String message , Throwable e , int exit_code ) {
24272435 if (title == null ) title = _ ("Error" );
24282436
24292437 if (commandLine ) {
@@ -2434,7 +2442,7 @@ static public void showError(String title, String message, Throwable e) {
24342442 JOptionPane .ERROR_MESSAGE );
24352443 }
24362444 if (e != null ) e .printStackTrace ();
2437- System .exit (1 );
2445+ System .exit (exit_code );
24382446 }
24392447
24402448
0 commit comments