void CKConfig::Commit() const { if ( rc_t rc = KConfigCommit(const_cast<KConfig*>(GetPointer())) ) { NCBI_THROW2(CSraException, eOtherError, "CKConfig: Cannot commit config changes", rc); } }
static rc_t perform_set_disable( visit_ctx * octx, bool disabled ) { rc_t rc; if ( octx->options->category == krepBadCategory ) rc = KOutMsg( "enable unknown category\n" ); else { rc = KRepositoryMgrCategorySetDisabled ( octx->repo_mgr, octx->options->category, disabled ); if ( rc != 0 ) { PLOGERR( klogErr, ( klogErr, rc, "KRepositoryMgrCategorySetDisabled() failed in $(func)", "func=%s", __func__ ) ); } else { rc = KConfigCommit ( octx->cfg ); if ( rc != 0 ) { PLOGERR( klogErr, ( klogErr, rc, "KConfigCommit() failed in $(func)", "func=%s", __func__ ) ); } } } return rc; }
static rc_t SetNode(KConfig* cfg, const Params* prm) { rc_t rc = 0; KConfigNode* node = NULL; char* name = NULL; char* val = NULL; assert(cfg && prm && prm->setValue); name = strdup(prm->setValue); if (name == NULL) { return RC(rcExe, rcStorage, rcAllocating, rcMemory, rcExhausted); } val = strchr(name, '='); if (val == NULL || *(val + 1) == '\0') { rc_t rc = RC(rcExe, rcArgv, rcParsing, rcParam, rcInvalid); LOGERR(klogErr, rc, "Bad " OPTION_SET " value"); } if (rc == 0) { *(val++) = '\0'; rc = KConfigOpenNodeUpdate(cfg, &node, name); if (rc != 0) { PLOGERR(klogErr, (klogErr, rc, "Cannot open node '$(name)' for update", "name=%s", name)); } } if (rc == 0) { assert(val); rc = KConfigNodeWrite(node, val, strlen(val)); if (rc != 0) { PLOGERR(klogErr, (klogErr, rc, "Cannot write value '$(val) to node '$(name)'", "val=%s,name=%s", val, name)); } } if (rc == 0) { rc = KConfigCommit(cfg); DISP_RC(rc, "while calling KConfigCommit"); } free(name); name = NULL; RELEASE(KConfigNode, node); return rc; }
rc_t CC KMain(int argc, char* argv[]) { rc_t rc = 0; Params prm; KConfig* cfg = NULL; if (rc == 0) { rc = ParamsConstruct(argc, argv, &prm); } if (rc == 0) { rc = KConfigMake(&cfg, NULL); DISP_RC(rc, "while calling KConfigMake"); } if (rc == 0) { if (prm.ngc) { rc = KConfigImportNgc(cfg, prm.ngc, NULL); if (rc == 0) { rc = KConfigCommit(cfg); } if (rc == 0) { OUTMSG(("%s was imported\n", prm.ngc)); } } else if (prm.modeSetNode) { rc_t rc3 = SetNode(cfg, &prm); if (rc3 != 0 && rc == 0) { rc = rc3; } } if (prm.modeShowCfg) { rc_t rc3 = ShowConfig(cfg, &prm); if (rc3 != 0 && rc == 0) { rc = rc3; } } if (prm.modeShowFiles) { rc_t rc3 = ShowFiles(cfg, &prm); if (rc3 != 0 && rc == 0) { rc = rc3; } } if (prm.modeShowModules) { rc_t rc3 = ShowModules(cfg, &prm); if (rc3 != 0 && rc == 0) { rc = rc3; } } if (prm.modeShowLoadPath) { const char* path = NULL; rc_t rc3 = KConfigGetLoadPath(cfg, &path); if (rc3 == 0) { if (path != NULL && path[0]) { OUTMSG(("%s\n", path)); } } else if (rc == 0) { rc = rc3; } } } if (prm.modeShowEnv) { ShowEnv(&prm); } RELEASE(KConfig, cfg); if (rc == 0 && prm.modeCreate) { rc = CreateConfig(argv[0]); } ParamsDestruct(&prm); return rc; }