PhoenixFileParser
1.7.3
Set of tools to ease file parsing
Toggle main menu visibility
Loading...
Searching...
No Matches
directory_replace_placeholder.cpp
Go to the documentation of this file.
1
/***************************************
2
Auteur : Pierre Aubert
3
Mail : pierre.aubert@lapp.in2p3.fr
4
Licence : CeCILL-C
5
****************************************/
6
7
8
#include "
directory_replace_placeholder.h
"
9
11
16
bool
directory_replace_placeholderFile
(
const
PPath & outputDir,
const
PPath & inputConfigDir,
const
PMapString & mapReplacePlaceholder){
17
bool
b(
true
);
18
PVecPath vecFileInputDir = inputConfigDir.getAllFileInDir();
19
for
(PVecPath::iterator it(vecFileInputDir.begin()); it != vecFileInputDir.end(); ++it){
20
PPath relativeFile = it->replace(mapReplacePlaceholder);
21
PPath fullFile = inputConfigDir / *it;
22
PString fileContent = fullFile.loadFileContent();
23
//TODO : this could be optimised with the dico_replace_var algorithm, but this is enough for now
24
PString replacedContent = fileContent.replace(mapReplacePlaceholder);
25
PPath outputFile = outputDir / relativeFile;
26
b &= outputFile.saveFileContent(replacedContent);
27
}
28
return
b;
29
}
30
32
37
bool
directory_replace_placeholder
(
const
PPath & outputDir,
const
PPath & inputConfigDir,
const
PMapString & mapReplacePlaceholder){
38
if
(!outputDir.createDirectory()){
39
std::cerr <<
"directory_replace_placeholder : cannot create dir '"
<<outputDir<<
"'"
<< std::endl;
40
return
false
;
41
}
42
//Let's get content of inputConfigDir
43
PVecPath vecDirInputDir = inputConfigDir.getAllDirectoryInDir();
44
bool
b(
true
);
45
for
(PVecPath::iterator itDir(vecDirInputDir.begin()); itDir != vecDirInputDir.end(); ++itDir){
46
PPath relativeDir = itDir->replace(mapReplacePlaceholder);
47
PPath fullInputDir = inputConfigDir / *itDir;
48
PPath fullOutputDir = outputDir / relativeDir;
49
b &= fullOutputDir.createDirectory();
50
51
b &=
directory_replace_placeholderFile
(fullOutputDir, fullInputDir, mapReplacePlaceholder);
52
b &=
directory_replace_placeholder
(fullOutputDir, fullInputDir, mapReplacePlaceholder);
53
}
54
b &=
directory_replace_placeholderFile
(outputDir, inputConfigDir, mapReplacePlaceholder);
55
if
(!b){
56
std::cerr <<
"directory_replace_placeholder : cannot create output directories architecture"
<< std::endl;
57
std::cerr <<
"\tinputConfigDir = '"
<<inputConfigDir<<
"'"
<< std::endl;
58
std::cerr <<
"\toutputDir = '"
<<outputDir<<
"'"
<< std::endl;
59
return
false
;
60
}
61
return
b;
62
}
directory_replace_placeholder
bool directory_replace_placeholder(const PPath &outputDir, const PPath &inputConfigDir, const PMapString &mapReplacePlaceholder)
Replace placeholder in a directory and its content by respect to the given map of value for all place...
Definition
directory_replace_placeholder.cpp:37
directory_replace_placeholderFile
bool directory_replace_placeholderFile(const PPath &outputDir, const PPath &inputConfigDir, const PMapString &mapReplacePlaceholder)
Replace placeholder in a directory and its content by respect to the given map of value for all place...
Definition
directory_replace_placeholder.cpp:16
directory_replace_placeholder.h
src
directory_replace_placeholder.cpp
Generated by
1.17.0