Implement --help and --version ourselves for kicad-cli

https://gitlab.com/kicad/code/kicad/-/issues/13293
This commit is contained in:
Marek Roszko 2022-12-31 23:39:05 -05:00
parent 8e8a3c7bdc
commit 1b15854da5
1 changed files with 32 additions and 1 deletions

View File

@ -270,10 +270,25 @@ bool PGM_KICAD::OnPgmInit()
return true; return true;
} }
#define ARG_VERSION "--version"
#define ARG_HELP "--help"
int PGM_KICAD::OnPgmRun() int PGM_KICAD::OnPgmRun()
{ {
argparse::ArgumentParser argParser( std::string( "kicad-cli" ), KICAD_MAJOR_MINOR_VERSION ); argparse::ArgumentParser argParser( std::string( "kicad-cli" ), KICAD_MAJOR_MINOR_VERSION,
argparse::default_arguments::none );
argParser.add_argument( "-v", ARG_VERSION )
.default_value( false )
.help( UTF8STDSTR( _( "prints version information and exits" ) ) )
.implicit_value( true )
.nargs( 0 );
argParser.add_argument( "-h", ARG_HELP )
.default_value( false )
.help( UTF8STDSTR( _( "shows help message and exits" ) ) )
.implicit_value( true )
.nargs( 0 );
for( COMMAND_ENTRY& entry : commandStack ) for( COMMAND_ENTRY& entry : commandStack )
{ {
@ -312,6 +327,22 @@ int PGM_KICAD::OnPgmRun()
return CLI::EXIT_CODES::ERR_ARGS; return CLI::EXIT_CODES::ERR_ARGS;
} }
if( argParser[ ARG_VERSION ] == true )
{
wxPrintf( KICAD_MAJOR_MINOR_VERSION );
return 0;
}
if( argParser[ ARG_HELP ] == true )
{
std::stringstream ss;
ss << argParser;
wxPrintf( FROM_UTF8( ss.str().c_str() ) );
return 0;
}
COMMAND_ENTRY* cliCmd = nullptr; COMMAND_ENTRY* cliCmd = nullptr;
for( COMMAND_ENTRY& entry : commandStack ) for( COMMAND_ENTRY& entry : commandStack )
{ {