Skip to content

Commit ee92f18

Browse files
committed
add option to skip opening of HTML file
1 parent 57b5460 commit ee92f18

File tree

6 files changed

+45
-4
lines changed

6 files changed

+45
-4
lines changed

code/html_generation.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ std::string getFirstFolderFileName(const FolderMap& fm)
6363

6464
void openFirstIndexFile(const FolderMap& fm, const std::string& html_dir)
6565
{
66-
auto fileName = getFirstFolderFileName(fm);
66+
const auto fileName = getFirstFolderFileName(fm);
6767
if (fileName.empty())
6868
{
6969
return;
7070
}
71-
const auto fullFileName = html_dir + fileName;
71+
const auto fullFileName = libstriezel::filesystem::slashify(html_dir) + fileName;
7272
const auto browser = detect_browser();
7373
if (!browser.has_value())
7474
{
@@ -277,7 +277,5 @@ int generateHtmlFiles(const MessageDatabase& mdb, const FolderMap& fm, const HTM
277277
return rcFileError;
278278
}
279279
std::cout << "All HTML files were created successfully!\n";
280-
// Open first HTML file in browser.
281-
openFirstIndexFile(fm, htmlDir);
282280
return 0;
283281
}

code/html_generation.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,11 @@
3535
*/
3636
int generateHtmlFiles(const MessageDatabase& mdb, const FolderMap& fm, const HTMLOptions htmlOptions);
3737

38+
/** \brief Attempts to open the first folder index HTML file in a browser.
39+
*
40+
* \param fm folder mappings for the message database
41+
* \param html_dir directory where the HTML files reside
42+
*/
43+
void openFirstIndexFile(const FolderMap& fm, const std::string& html_dir);
44+
3845
#endif // PMDB_HTML_GENERATION_HPP

code/main.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ void showHelp(const std::string& name)
114114
<< " --table=" << TableClasses::DefaultTableClass << "\n"
115115
<< " --row=" << TableClasses::DefaultRowClass << "\n"
116116
<< " --cell=" << TableClasses::DefaultCellClass << "\n"
117+
<< " --no-open - Usually the program tries to open the generated HTML\n"
118+
<< " files in a web browser for viewing. If this option is\n"
119+
<< " given, no such attempt is made.\n"
117120
<< " --subset-check - Search for messages with texts that are completely\n"
118121
<< " contained in other messages, too.\n"
119122
<< " --list-from X - List all messages that were sent by user X, where X stands\n"
@@ -136,6 +139,7 @@ int main(int argc, char **argv)
136139

137140
bool doHTML = false;
138141
HTMLOptions htmlOptions;
142+
bool doNotOpen = false;
139143

140144
bool searchForSubsets = false;
141145
std::vector<FilterUser> filters = std::vector<FilterUser>();
@@ -371,6 +375,15 @@ int main(int argc, char **argv)
371375
htmlOptions.tableClasses.cell = TableClasses::DefaultCellClass;
372376
htmlOptions.tableClasses.useClasses = true;
373377
}//param == std-classes
378+
else if (param == "--no-open")
379+
{
380+
if (doNotOpen)
381+
{
382+
std::cerr << "Parameter " << param << " must not occur more than once!\n";
383+
return rcInvalidParameter;
384+
}
385+
doNotOpen = true;
386+
}
374387
else if ((param == "--subset-check") || (param == "--redundant-check"))
375388
{
376389
if (searchForSubsets)
@@ -529,6 +542,11 @@ int main(int argc, char **argv)
529542
{
530543
return rc;
531544
}
545+
if (!doNotOpen)
546+
{
547+
// Open first HTML file in browser.
548+
openFirstIndexFile(fm, pmdb::paths::html());
549+
}
532550
} // if HTML file generation was requested
533551

534552
if (searchForSubsets)

readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ options:
6666
--table=grid_table
6767
--row=grid_tr
6868
--cell=grid_td
69+
--no-open - Usually the program tries to open the generated HTML
70+
files in a web browser for viewing. If this option is
71+
given, no such attempt is made.
6972
--subset-check - Search for messages with texts that are completely
7073
contained in other messages, too.
7174
--list-from X - List all messages that were sent by user X, where X stands

tests/pmdb/parameter-misuse.cmd

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,13 @@ if %ERRORLEVEL% NEQ 1 (
157157
exit /B 1
158158
)
159159

160+
:: --no-open: parameter given twice
161+
"%EXECUTABLE%" --no-save --no-load-default --xml "%XML_FILE%" --html --no-open --no-open
162+
if %ERRORLEVEL% NEQ 1 (
163+
echo Executable did not exit with code 1 when no-open option was given twice.
164+
exit /B 1
165+
)
166+
160167
:: --subset-check: parameter given twice
161168
"%EXECUTABLE%" --no-save --no-load-default --xml "%XML_FILE%" --subset-check --subset-check
162169
if %ERRORLEVEL% NEQ 1 (

tests/pmdb/parameter-misuse.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,14 @@ then
177177
exit 1
178178
fi
179179

180+
# --no-open: parameter given twice
181+
"$EXECUTABLE" --no-save --no-load-default --xml "$XML_FILE" --html --no-open --no-open
182+
if [ $? -ne 1 ]
183+
then
184+
echo "Executable did not exit with code 1 when --no-open was given twice."
185+
exit 1
186+
fi
187+
180188
# --subset-check: parameter given twice
181189
"$EXECUTABLE" --no-save --no-load-default --xml "$XML_FILE" --subset-check --subset-check
182190
if [ $? -ne 1 ]

0 commit comments

Comments
 (0)