28#include <wx/tokenzr.h>
45 .default_value( std::string(
"" ) )
50 .default_value( std::string(
"" ) )
51 .metavar(
"FMT_PRESET" );
56 .default_value( std::string(
"Reference,Value,Footprint,QUANTITY,DNP" ) )
61 .default_value( std::string(
"Refs,Value,Footprint,Qty,DNP" ) )
66 .default_value( std::string(
"" ) )
67 .metavar(
"GROUP_BY" );
71 .default_value( std::string(
"Reference" ) )
72 .metavar(
"SORT_BY" );
76 .default_value(
true );
80 .default_value( std::string(
"" ) )
94 .default_value( std::string(
"," ) )
95 .metavar(
"FIELD_DELIM" );
99 .default_value( std::string(
"\"" ) )
100 .metavar(
"STR_DELIM" );
104 .default_value( std::string(
"," ) )
105 .metavar(
"REF_DELIM" );
109 .default_value( std::string(
"-" ) )
110 .metavar(
"REF_RANGE_DELIM" );
128 std::vector<wxString> v;
130 if( !aList.IsEmpty() )
132 wxStringTokenizer layerTokens( aList,
"," );
134 while( layerTokens.HasMoreTokens() )
135 v.emplace_back( layerTokens.GetNextToken() );
143 std::unique_ptr<JOB_EXPORT_BOM> bomJob = std::make_unique<JOB_EXPORT_BOM>();
169 bomJob->m_fieldsLabels.clear();
181 if( !wxFile::Exists( bomJob->m_filename ) )
183 wxFprintf( stderr,
_(
"Input file does not exist or is not accessible\n" ) );
void addVariantsArg()
Set up the list of variants to output arguement.
argparse::ArgumentParser m_argParser
COMMAND(const std::string &aName)
Define a new COMMAND instance.
void addCommonArgs(bool aInput, bool aOutput, IO_TYPE aInputType, IO_TYPE aOutputType)
Set up the most common of args used across cli.
wxString m_argOutput
Value of the output arg if configured.
wxString m_argInput
Value of the common input arg if configured.
std::vector< wxString > m_argVariantNames
The list of variant names to output.
EXPORT_BOM_COMMAND(KIWAY::FACE_T aFaceId)
std::vector< wxString > convertStringList(const wxString &aList)
int doPerform(KIWAY &aKiway) override
The internal handler that should be overloaded to implement command specific processing and work.
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
int ProcessJob(KIWAY::FACE_T aFace, JOB *aJob, REPORTER *aReporter=nullptr, PROGRESS_REPORTER *aProgressReporter=nullptr)
FACE_T
Known KIFACE implementations.
#define ARG_STRING_DELIMITER
#define ARG_GROUP_BY_DESC
#define DEPRECATED_ARG_INCLUDE_EXCLUDED_FROM_BOM_DESC
#define ARG_KEEP_LINE_BREAKS_DESC
#define ARG_EXCLUDE_DNP_DESC
#define ARG_INCLUDE_BYTE_ORDER_MARK_DESC
#define ARG_SORT_FIELD_DESC
#define ARG_REF_DELIMITER_DESC
#define ARG_KEEP_TABS_DESC
#define ARG_STRING_DELIMITER_DESC
#define DEPRECATED_ARG_INCLUDE_EXCLUDED_FROM_BOM
#define ARG_KEEP_LINE_BREAKS
#define ARG_FMT_PRESET_DESC
#define ARG_FIELD_DELIMITER_DESC
#define ARG_FIELD_DELIMITER
#define ARG_REF_DELIMITER
#define DEPRECATED_ARG_INCLUDE_EXCLUDED_FROM_BOM_WARNING
#define ARG_INCLUDE_BYTE_ORDER_MARK
#define ARG_REF_RANGE_DELIMITER
#define ARG_SORT_ASC_DESC
#define ARG_REF_RANGE_DELIMITER_DESC
This file contains miscellaneous commonly used macros and functions.
static const int ERR_INVALID_INPUT_FILE
wxString From_UTF8(const char *cstring)