General purpose program to edit or create properties file.
More...
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <vector>
#include <set>
#include <map>
#include "JLang/JEquationParameters.hh"
#include "JLang/JEquation.hh"
#include "JLang/JToken.hh"
#include "JSupport/JMeta.hh"
#include "Jeep/JComment.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"
Go to the source code of this file.
|
int | main (int argc, char **argv) |
|
General purpose program to edit or create properties file.
- Author
- mdejong
Definition in file JEditProperties.cc.
int main |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Definition at line 24 of file JEditProperties.cc.
29 typedef JToken<';'> token_type;
40 JParser<> zap(
"General purpose program to edit or create properties file.");
46 zap[
'w'] =
make_field(width,
"format width of key") = 12;
51 catch(
const exception &error) {
52 FATAL(error.what() << endl);
59 const JEquationFacet facet(JEquationParameters(
"=",
";\n",
"",
"#"));
63 if (inputFile !=
"") {
65 ifstream
in(inputFile.c_str());
69 in.imbue(locale(
in.getloc(), facet.clone()));
71 for (JEquation equation;
in >> equation; ) {
72 data[equation.getKey()] = equation.getValue();
78 comment.add(JMeta(argc, argv));
82 if (!modifier.empty()) {
86 is.imbue(locale(is.getloc(), facet.clone()));
88 for (
const token_type& token : modifier) {
95 if (is >> equation && facet.isSeparator(equation.getSeparator()))
96 data[equation.getKey()] = equation.getValue();
98 ERROR(
"Invalid modifier: " << token << endl);
104 for (
const string& key :
rm) {
108 if (i != data.end()) {
122 ostream os(buffer.is_open() ? &buffer : cout.rdbuf());
126 os.imbue(locale(cout.getloc(), facet.clone()));
128 for (
const auto& item : data) {
129 os << setw(width) << left << item.first << right << facet.getDefaultWhiteSpace()
130 << facet.getSeparator() << facet.getDefaultWhiteSpace()
131 << item.second << facet.getEndOfLine();
Utility class to parse command line options.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in