/* check if dir_name exist. Create it if not */ SDL_bool check_dir(char *dir_name) { DIR *d; if (!(d = OPENDIR(dir_name)) && (errno == ENOENT)) { MAKEDIR(dir_name, 0755); return SDL_FALSE; } return SDL_TRUE; }
void GameApp::ensureFolders(string file) { vector<string> folders = split(file, '/'); string folder = ""; //last one is potentially a file name, not a folder size_t nb_folders = (file[file.length() - 1] == '/' || file[file.length() - 1] == '\\') ? folders.size() : folders.size() - 1; for (size_t i = 0; i < nb_folders; ++i) { folder.append(folders[i]).append("/"); MAKEDIR(folder.c_str()); } }
void Logger::Log(char* szText, ...) { va_list args; va_start(args, szText); time_t rawtime; tm timeinfo; time(&rawtime); localtime_s(&timeinfo, &rawtime); timeinfo.tm_mon++; timeinfo.tm_year += 1900; CONSOLECOLOR(YELLOW); printf(" %02d:%02d:%02d %02d-%02d-%04d ", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec, timeinfo.tm_mday, timeinfo.tm_mon, timeinfo.tm_year); CONSOLECOLOR(LIGHTCYAN); printf("> "); CONSOLECOLOR(LIGHTGRAY); char logData[MAX_PATH]; vsprintf_s(logData, szText, args); printf(logData); va_end(args); TCHAR modulePath[MAX_PATH]; TCHAR * moduleName; GetModuleFileName(NULL, modulePath, MAX_PATH); moduleName = PathFindFileName(modulePath); *(PathFindExtension(moduleName)) = 0; // Log to TextFiles char logFile[MAX_PATH]; std::string logs_dir(".\\Logs"); MAKEDIR(logs_dir.c_str()); sprintf_s(logFile, "%s\\%s_%02d-%02d-%04d.txt", logs_dir.c_str(), moduleName, timeinfo.tm_mday, timeinfo.tm_mon, timeinfo.tm_year); std::ofstream fsLog(logFile, std::ios::app); if (fsLog.is_open()) { char timeData[MAX_PATH]; sprintf_s(timeData, "%02d:%02d:%02d %02d-%02d-%04d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec, timeinfo.tm_mday, timeinfo.tm_mon, timeinfo.tm_year); fsLog << timeData << " > "; fsLog << logData; fsLog.close(); } }
u8 *create_dir(u8 *name) { struct stat xstat; int n, namelen; u8 *p; namelen = strlen(name); p = strchr(name, ':'); if(p) { p++; } else { p = name; } if((*p == '/') || (*p == '\\')) p++; for(; (p - name) < namelen; p++) { n = strcspn(p, "/\\"); if(!n) continue; p += n; if(!*p) continue; *p = 0; if(stat(name, &xstat) < 0) { printf("- create folder %s\n", name); MAKEDIR(name); } else if(!S_ISDIR(xstat.st_mode)) { printf("\nError: %s is not a folder\n", name); std_err(""); } *p = PATHSLASH; } return(name); }
void Logger::StartLog() { time_t rawtime; tm timeinfo; time(&rawtime); localtime_s(&timeinfo, &rawtime); timeinfo.tm_mon++; timeinfo.tm_year += 1900; TCHAR modulePath[MAX_PATH]; TCHAR * moduleName; GetModuleFileName(NULL, modulePath, MAX_PATH); moduleName = PathFindFileName(modulePath); *(PathFindExtension(moduleName)) = 0; // Log to TextFiles char logFile[MAX_PATH]; std::string logs_dir(".\\Logs"); MAKEDIR(logs_dir.c_str()); sprintf_s(logFile, "%s\\%s_%02d-%02d-%04d.txt", logs_dir.c_str(), moduleName, timeinfo.tm_mday, timeinfo.tm_mon, timeinfo.tm_year); std::ofstream fsLog(logFile, std::ios::app); if (fsLog.is_open()) { char timeData[MAX_PATH]; sprintf_s(timeData, "%02d:%02d:%02d %02d-%02d-%04d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec, timeinfo.tm_mday, timeinfo.tm_mon, timeinfo.tm_year); fsLog << "=============================================================================================" << std::endl; fsLog << "===\t\t\t\tLOG START " << timeData << "\t\t\t\t ===" << std::endl; fsLog << "=============================================================================================" << std::endl; fsLog.close(); } Log("%s - Dragon Ball Online Server\n", moduleName); SetConsoleTitle(moduleName); }