int MapArchiveSave(const char *filename, CampaignSetting *c) { int res = 1; json_t *root = NULL; char relbuf[CDOGS_PATH_MAX]; if (strcmp(StrGetFileExt(filename), "cdogscpn") == 0 || strcmp(StrGetFileExt(filename), "CDOGSCPN") == 0) { strcpy(relbuf, filename); } else { sprintf(relbuf, "%s.cdogscpn", filename); } char buf[CDOGS_PATH_MAX]; RealPath(relbuf, buf); // Make dir but ignore error, as we may be saving over an existing dir mkdir_deep(buf); // Campaign root = json_new_object(); AddIntPair(root, "Version", MAP_VERSION); AddStringPair(root, "Title", c->Title); AddStringPair(root, "Author", c->Author); AddStringPair(root, "Description", c->Description); AddIntPair(root, "Missions", c->Missions.size); char buf2[CDOGS_PATH_MAX]; sprintf(buf2, "%s/campaign.json", buf); if (!TrySaveJSONFile(root, buf2)) { res = 0; goto bail; } json_free_value(&root); root = json_new_object(); json_insert_pair_into_object(root, "Missions", SaveMissions(&c->Missions)); sprintf(buf2, "%s/missions.json", buf); if (!TrySaveJSONFile(root, buf2)) { res = 0; goto bail; } json_free_value(&root); root = json_new_object(); json_insert_pair_into_object( root, "Characters", SaveCharacters(&c->characters)); sprintf(buf2, "%s/characters.json", buf); if (!TrySaveJSONFile(root, buf2)) { res = 0; goto bail; } bail: json_free_value(&root); return res; }
void SetupConfigDir(void) { const char *cfg_p = GetConfigFilePath(""); LOG(LM_MAIN, LL_INFO, "Creating config dir %s... ", cfg_p); if (mkdir_deep(cfg_p)) { if (errno != EEXIST) LOG(LM_MAIN, LL_INFO, "Config dir created."); else LOG(LM_MAIN, LL_INFO, "Config dir already exists."); } else { switch (errno) { case EACCES: LOG(LM_MAIN, LL_WARN, "Permission denied"); break; default: perror("Error creating config directory:"); break; } } return; }
void SetupConfigDir(void) { const char *cfg_p = GetConfigFilePath(""); printf("Creating Config dir... "); if (mkdir_deep(cfg_p) == 0) { if (errno != EEXIST) printf("Config dir created.\n"); else printf("No need. Already exists!\n"); } else { switch (errno) { case EACCES: printf("Permission denied!\n"); break; default: perror("Error creating config directory:"); } } return; }