@@ -1213,4 +1213,122 @@ void WsjcppLog::add(WsjcppColorModifier &clr, const std::string &sType, const st
1213
1213
}
1214
1214
}
1215
1215
1216
+ // ---------------------------------------------------------------------
1217
+ // WsjcppResourceFile
1218
+
1219
+ WsjcppResourceFile::WsjcppResourceFile () {
1220
+ WsjcppResourcesManager::add (this );
1221
+ }
1222
+
1223
+ // ---------------------------------------------------------------------
1224
+
1225
+
1226
+ // ---------------------------------------------------------------------
1227
+ // WsjcppResourcesManager
1228
+
1229
+ std::vector<WsjcppResourceFile*> *g_pWsjcppResourceFiles = nullptr ;
1230
+
1231
+ void WsjcppResourcesManager::initGlobalVariables () {
1232
+ if (g_pWsjcppResourceFiles == nullptr ) {
1233
+ g_pWsjcppResourceFiles = new std::vector<WsjcppResourceFile*>();
1234
+ }
1235
+ }
1236
+
1237
+ // ---------------------------------------------------------------------
1238
+
1239
+ void WsjcppResourcesManager::add (WsjcppResourceFile* pStorage) {
1240
+ WsjcppResourcesManager::initGlobalVariables ();
1241
+ g_pWsjcppResourceFiles->push_back (pStorage);
1242
+ }
1243
+
1244
+ // ---------------------------------------------------------------------
1245
+
1246
+ bool WsjcppResourcesManager::has (const std::string &sFilename ) {
1247
+ WsjcppResourcesManager::initGlobalVariables ();
1248
+ for (int i = 0 ; i < WsjcppResourcesManager::list ().size (); i++) {
1249
+ if (WsjcppResourcesManager::list ()[i]->getFilename () == sFilename ) {
1250
+ return true ;
1251
+ }
1252
+ }
1253
+ return false ;
1254
+ }
1255
+
1256
+ // ---------------------------------------------------------------------
1257
+
1258
+ WsjcppResourceFile* WsjcppResourcesManager::get (const std::string &sFilename ) {
1259
+ WsjcppResourcesManager::initGlobalVariables ();
1260
+ for (int i = 0 ; i < WsjcppResourcesManager::list ().size (); i++) {
1261
+ if (WsjcppResourcesManager::list ()[i]->getFilename () == sFilename ) {
1262
+ return WsjcppResourcesManager::list ()[i];
1263
+ }
1264
+ }
1265
+ return nullptr ;
1266
+ }
1267
+
1268
+ // ---------------------------------------------------------------------
1269
+
1270
+ const std::vector<WsjcppResourceFile*> &WsjcppResourcesManager::list () {
1271
+ return *g_pWsjcppResourceFiles;
1272
+ }
1273
+
1274
+ // ---------------------------------------------------------------------
1275
+
1276
+ /*
1277
+ bool WsjcppResourcesManager::make(const std::string &sWorkspace) {
1278
+ if (!WsjcppResourcesManager::createFolders(sWorkspace)) {
1279
+ return false;
1280
+ }
1281
+ return WsjcppResourcesManager::extractFiles(sWorkspace);
1282
+ }
1283
+
1284
+ // ---------------------------------------------------------------------
1285
+
1286
+ bool WsjcppResourcesManager::createFolders(const std::string &sWorkspace) {
1287
+ // prepare folders
1288
+ std::vector<std::string> vCreateDirs;
1289
+ vCreateDirs.push_back(sWorkspace + "/logs");
1290
+ vCreateDirs.push_back(sWorkspace + "/teams");
1291
+ vCreateDirs.push_back(sWorkspace + "/checkers");
1292
+ vCreateDirs.push_back(sWorkspace + "/html");
1293
+ vCreateDirs.push_back(sWorkspace + "/html/css");
1294
+ vCreateDirs.push_back(sWorkspace + "/html/js");
1295
+ vCreateDirs.push_back(sWorkspace + "/html/images");
1296
+ vCreateDirs.push_back(sWorkspace + "/html/images/teams");
1297
+ vCreateDirs.push_back(sWorkspace + "/html/images/states");
1298
+
1299
+ for(int i = 0; i < vCreateDirs.size(); i++) {
1300
+ std::string sPath = vCreateDirs[i];
1301
+ // check dir existing
1302
+ if (!FS::dirExists(sPath)) {
1303
+ // try make dir
1304
+ if (!FS::makeDir(sPath)) {
1305
+ std::cout << "Could not create folder " << sPath << std::endl;
1306
+ return false;
1307
+ } else {
1308
+ std::cout << "Created folder " << sPath << std::endl;
1309
+ }
1310
+ }
1311
+ }
1312
+ return true;
1313
+ }
1314
+
1315
+ // ---------------------------------------------------------------------
1316
+
1317
+ bool WsjcppResourcesManager::extractFiles(const std::string &sWorkspace) {
1318
+ // TODO mkdir -p for files
1319
+ const std::vector<WsjcppResourceFile*> list = WsjcppResourcesManager::list();
1320
+ for(int i = 0; i < list.size(); i++) {
1321
+ std::string sFilename = sWorkspace + "/" + list[i]->filename();
1322
+ if (!FS::fileExists(sFilename)) {
1323
+ if (!FS::writeFile(sFilename, list[i]->buffer(), list[i]->bufferSize())) {
1324
+ std::cout << "Could not write file " << sFilename << std::endl;
1325
+ return false;
1326
+ } else {
1327
+ std::cout << "Created file " << sFilename << std::endl;
1328
+ }
1329
+ }
1330
+ }
1331
+ return true;
1332
+ }
1333
+ */
1216
1334
0 commit comments