41 .default_value( std::string(
"" ) )
46 .default_value( std::string(
"" ) )
47 .metavar(
"FMT_PRESET" );
52 .default_value( std::string(
"Reference,Value,Footprint,${QUANTITY},${DNP}" ) )
57 .default_value( std::string(
"Refs,Value,Footprint,Qty,DNP" ) )
62 .default_value( std::string(
"" ) )
63 .metavar(
"GROUP_BY" );
67 .default_value( std::string(
"Reference" ) )
68 .metavar(
"SORT_BY" );
72 .implicit_value(
true )
73 .default_value(
true );
77 .default_value( std::string(
"" ) )
82 .implicit_value(
true )
83 .default_value(
false );
88 .default_value( std::string(
"," ) )
89 .metavar(
"FIELD_DELIM" );
93 .default_value( std::string(
"\"" ) )
94 .metavar(
"STR_DELIM" );
98 .default_value( std::string(
"," ) )
99 .metavar(
"REF_DELIM" );
103 .default_value( std::string(
"-" ) )
104 .metavar(
"REF_RANGE_DELIM" );
108 .implicit_value(
true )
109 .default_value(
false );
113 .implicit_value(
true )
114 .default_value(
false );
120 std::vector<wxString> v;
122 if( !aList.IsEmpty() )
124 wxStringTokenizer layerTokens( aList,
"," );
126 while( layerTokens.HasMoreTokens() )
127 v.emplace_back( layerTokens.GetNextToken() );
135 std::unique_ptr<JOB_EXPORT_SCH_BOM> bomJob = std::make_unique<JOB_EXPORT_SCH_BOM>(
true );
138 bomJob->m_filename = m_argInput;
139 bomJob->m_outputFile = m_argOutput;
142 bomJob->m_bomFmtPresetName =
146 bomJob->m_fieldDelimiter =
148 bomJob->m_stringDelimiter =
151 bomJob->m_refRangeDelimiter =
157 bomJob->m_fieldsOrdered =
159 bomJob->m_fieldsLabels =
165 bomJob->m_fieldsLabels.clear();
168 bomJob->m_fieldsGroupBy =
171 bomJob->m_sortAsc = m_argParser.get<
bool>(
ARG_SORT_ASC );
175 if( !wxFile::Exists( bomJob->m_filename ) )
177 wxFprintf( stderr,
_(
"Schematic file does not exist or is not accessible\n" ) );
argparse::ArgumentParser m_argParser
void addCommonArgs(bool aInput, bool aOutput, bool aInputIsDir, bool aOutputIsDir)
Sets up the most common of args used across cli.
int doPerform(KIWAY &aKiway) override
The internal handler that should be overloaded to implement command specific processing and work.
std::vector< wxString > convertStringList(const wxString &aList)
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
int ProcessJob(KIWAY::FACE_T aFace, JOB *job)
#define ARG_STRING_DELIMITER
#define ARG_GROUP_BY_DESC
#define ARG_KEEP_LINE_BREAKS_DESC
#define ARG_EXCLUDE_DNP_DESC
#define ARG_SORT_FIELD_DESC
#define ARG_REF_DELIMITER_DESC
#define ARG_KEEP_TABS_DESC
#define ARG_STRING_DELIMITER_DESC
#define ARG_KEEP_LINE_BREAKS
#define ARG_FMT_PRESET_DESC
#define ARG_FIELD_DELIMITER_DESC
#define ARG_FIELD_DELIMITER
#define ARG_REF_DELIMITER
#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)