+ bbtkDebugMessage("config",1,"OK" << std::endl);
+
+ int i,j;
+
+ // Description
+ for (i=0,j=0; i<BB.nChildNode((XMLCSTR)"description"); i++)
+ {
+ std::string val;
+ GetTextOrClear(BB.getChildNode((XMLCSTR)"description",&j),val);
+ mDescription += val;
+ }
+
+ // Url
+ if( BB.nChildNode((XMLCSTR)"url") )
+ GetTextOrClear(BB.getChildNode((XMLCSTR)"url"),mUrl);
+
+ // Data_Path
+ if( BB.nChildNode((XMLCSTR)"data_path") )
+ GetTextOrClear(BB.getChildNode((XMLCSTR)"data_path"),mData_path);
+
+ // install_path
+ // if( BB.nChildNode((XMLCSTR)"install_path") )
+ // GetTextOrClear(BB.getChildNode((XMLCSTR)"install_path"),mInstall_path);
+
+ // add user bbs paths
+ for (i=0,j=0; i<BB.nChildNode((XMLCSTR)"bbs_path"); i++)
+ {
+ std::string val;
+ GetTextOrClear(BB.getChildNode((XMLCSTR)"bbs_path",&j),val);
+ mBbs_paths.push_back(val);
+ }
+
+ // package_paths
+
+ // add user package path
+ for (i=0,j=0; i<BB.nChildNode((XMLCSTR)"package_path"); i++)
+ {
+ std::string val;
+ GetTextOrClear(BB.getChildNode((XMLCSTR)"package_path",&j),val);
+ mPackage_paths.push_back(val);
+ }
+
+ // default_temp_dir
+ /*
+ if( BB.nChildNode((XMLCSTR)"default_temp_dir") )
+ GetTextOrClear(BB.getChildNode((XMLCSTR)"default_temp_dir"),mDefault_temp_dir);
+
+ if ( mDefault_temp_dir == "$") // no value found in config_xml
+ {
+ size_t pos = mConfig_xml_full_path.find("bbtk_config.xml");
+ mDefault_temp_dir = mConfig_xml_full_path.substr (0,pos);
+ }
+ */
+
+ GetHelp(2);
+ }
+ //=========================================================================
+
+ //=========================================================================
+ bool ConfigurationFile::AddPackagePathsAndWrite( const std::string& path )
+ {
+ bbtkDebugMessageInc("config",9,
+ "ConfigurationFile::AddPackagePathsAndWrite("
+ <<path<<")"<<std::endl);
+
+ XMLResults* res = new XMLResults;
+ XMLNode BB =
+ XMLNode::parseFile((XMLCSTR)Get_config_xml_full_path().c_str(),
+ (XMLCSTR)"config",res);
+
+ if ( res->error != eXMLErrorNone )
+ {
+ std::string mess = GetErrorMessage(res,Get_config_xml_full_path());
+ delete res;
+ bbtkDebugMessage("config",1,mess<< std::endl);
+ bbtkError(mess);
+ }
+ delete res;
+
+#ifdef _WIN32
+ std::string bbs_path = path + "/bbs";
+#else
+ std::string bbs_path = path + "/share/bbtk/bbs" ;
+#endif
+ XMLNode BBSPATH = BB.addChild((XMLCSTR)"bbs_path");
+ BBSPATH.addText((XMLCSTR)bbs_path.c_str());
+ Utilities::replace(bbs_path, INVALID_FILE_SEPARATOR, VALID_FILE_SEPARATOR);
+ mBbs_paths.push_back(bbs_path);
+
+#ifdef _WIN32
+ std::string pack_path = path + "/bin";
+#else
+ std::string pack_path = path ;
+#endif
+ XMLNode PACKPATH = BB.addChild((XMLCSTR)"package_path");
+ PACKPATH.addText((XMLCSTR)pack_path.c_str());
+ Utilities::replace(pack_path,INVALID_FILE_SEPARATOR,VALID_FILE_SEPARATOR);
+ mPackage_paths.push_back(pack_path);
+
+#ifdef _WIN32
+ pack_path = path + "/RelWithDebInfo";
+ PACKPATH = BB.addChild((XMLCSTR)"package_path");
+ PACKPATH.addText((XMLCSTR)pack_path.c_str());
+ Utilities::replace(pack_path,INVALID_FILE_SEPARATOR,VALID_FILE_SEPARATOR);
+ mPackage_paths.push_back(pack_path);
+ pack_path = path + "/Debug";
+ PACKPATH = BB.addChild((XMLCSTR)"package_path");
+ PACKPATH.addText((XMLCSTR)pack_path.c_str());
+ Utilities::replace(pack_path,INVALID_FILE_SEPARATOR,VALID_FILE_SEPARATOR);
+ mPackage_paths.push_back(pack_path);
+ pack_path = path + "/Release";
+ PACKPATH = BB.addChild((XMLCSTR)"package_path");
+ PACKPATH.addText((XMLCSTR)pack_path.c_str());
+ Utilities::replace(pack_path,INVALID_FILE_SEPARATOR,VALID_FILE_SEPARATOR);
+ mPackage_paths.push_back(pack_path);
+#endif
+
+
+ XMLError err = BB.writeToFile((XMLCSTR)Get_config_xml_full_path().c_str());
+ if ( err != eXMLErrorNone )
+ {
+ std::string mess = GetErrorMessage(res,Get_config_xml_full_path());
+ bbtkDebugMessage("config",1,mess<< std::endl);
+ bbtkError(mess);
+ }
+
+ return true;
+ }
+ //=========================================================================
+
+ //=========================================================================
+ void ConfigurationFile::GetHelp(int level) const
+ {
+ bbtkDebugMessageInc("config",9,"ConfigurationFile::GetHelp("<<level
+ <<")"<<std::endl);
+
+ const std::string config_xml_full_path = Get_config_xml_full_path();
+ const std::string description = Get_description();
+ const std::string url = Get_doc_path();
+ const std::string data_path = Get_data_path();
+ const std::string default_temp_dir = Get_default_temp_dir();
+ const std::string file_separator = Get_file_separator();
+ const std::vector<std::string>bbs_paths = Get_bbs_paths();
+ const std::vector<std::string>package_paths = Get_package_paths();
+
+ bbtkMessage("help",level, "=============" << std::endl);
+ bbtkMessage("help",level, "Configuration" << std::endl);
+ bbtkMessage("help",level, "=============" << std::endl);
+ bbtkMessage("help",level, "bbtk_config.xml : [" << config_xml_full_path << "]" << std::endl);
+ bbtkMessage("help",level, "Documentation Path : [" << url << "]" << std::endl);
+ bbtkMessage("help",level, "Data Path : [" << data_path << "]" << std::endl);
+ bbtkMessage("help",level, "Temp Directory : [" << default_temp_dir << "]" << std::endl);
+ bbtkMessage("help",level, "File Separator : [" << file_separator << "]" << std::endl);
+
+ std::vector<std::string>::const_iterator i;
+
+ bbtkMessage("help",level, "BBS Paths " << std::endl);
+ for (i = bbs_paths.begin(); i!=bbs_paths.end(); ++i )