//==========================================================================
void RegenerateDoc ( bbtk::Package::Pointer p, std::string& doc_path )
{
- std::string pack_name(p->GetName());
- std::string pack_path = doc_path + pack_name;
- // Creating directory
- if ( ! bbtk::Utilities::FileExists(pack_path) )
- {
- std::string command("mkdir \"" +pack_path+ "\"");
- system( command.c_str() );
- }
- std::string pack_index(pack_path);
- pack_index += bbtk::ConfigurationFile::GetInstance().Get_file_separator();
- pack_index += "index.html";
-
- std::cout << "* Generating doc for '"<<pack_name<<"' in "
- << pack_index << std::endl;
-
- p->SetDocURL(pack_index);
- p->SetDocRelativeURL("index.html");
- p->CreateHtmlPage(pack_index,"bbtk",pack_name,"","",0,0,false); //true);
+
+ std::string pack_name(p->GetName());
+ std::string pack_path = doc_path + pack_name;
+ // Creating directory
+ if ( ! bbtk::Utilities::FileExists(pack_path) )
+ {
+ std::string command("mkdir \"" +pack_path+ "\"");
+ system( command.c_str() );
+ }
+ std::string pack_index(pack_path);
+ pack_index += bbtk::ConfigurationFile::GetInstance().Get_file_separator();
+ pack_index += "index.html";
+
+ std::cout << "* Generating doc for package '"<<pack_name<<"' in "
+ << pack_index << std::endl;
+
+ p->SetDocURL(pack_index);
+ p->SetDocRelativeURL("index.html");
+
+
+ p->CreateHtmlPage(pack_index,"bbtk",pack_name,"","",0,0,true); //true);
+
+
}
+void Usage()
+{
+ std::cout << "usage : bbRegeneratePackageDoc [<package name>|-a] [-q|-v]"
+ << std::endl
+ << " -a : All packages"<<std::endl
+ << " -q : Quiet"<<std::endl
+ << " -v : Verbose"<<std::endl;
+}
+
//==========================================================================
int main(int argc, char **argv)
{
std::string pack("-a");
- if (argc==1)
+ if (argc==2)
{
- /*
- // TO DO : make a Wx app
- wxString name = wxGetTextFromUser(_T("Enter package name (* for all)"),
- _T("Regenerate package doc"),
- _T(""));
- if (name.IsEmpty()) return 0;
- pack = bbtk::wx2std(name);
- */
+ pack = std::string(argv[1]);
}
- else if (argc==2)
+ else if (argc==3)
{
pack = std::string(argv[1]);
+ std::string param(argv[2]);
+ if (param=="-q") bbtk::MessageManager::SetMessageLevel("max",0);
+ else if (param=="-v") bbtk::MessageManager::SetMessageLevel("all",9);
+ else
+ {
+ Usage();
+ return 0;
+ }
}
else
{
- std::cout << "usage : bbRegeneratePackageDoc [<package name>|-a]" << std::endl;
+ Usage();
return 0;
}
-
+
try
{
- std::string doc_path = bbtk::ConfigurationFile::GetInstance().Get_doc_path();
+ std::string doc_path = bbtk::ConfigurationFile::GetInstance().Get_doc_path();
doc_path += bbtk::ConfigurationFile::GetInstance().Get_file_separator();
doc_path += "bbdoc";
doc_path += bbtk::ConfigurationFile::GetInstance().Get_file_separator();
-
bbtk::Interpreter::Pointer I = bbtk::Interpreter::New();
I->SetCommandLine(true);
I->SetThrow(false);
- I->InterpretLine( "exec freeze");
+//std::cout<<"JCP bbRegeneratePackageDoc.cpp I->InterpretLine( exec freeze_no_error);"<<std::endl;
+ I->InterpretLine( "exec freeze_no_error");
if (pack != "-a")
{
- I->InterpretLine( "include "+pack);
- I->InterpretLine( "include "+pack+"-appli");
- RegenerateDoc(I->GetExecuter()->GetFactory()->GetPackage(pack),doc_path);
+
+ I->InterpretLine( "include "+pack);
+ I->InterpretLine( "include "+pack+"-appli");
+ bbtk::Package::Pointer p = I->GetExecuter()->GetFactory()->GetPackage(pack);
+//std::cout<<"JCP bbRegeneratePackageDoc.cpp RegenerateDoc(I->GetExecuter()->GetFactory()->GetPackage(pack),doc_path);"<<std::endl;
+ RegenerateDoc(I->GetExecuter()->GetFactory()->GetPackage(pack),doc_path);
}
else
{
- I->InterpretLine( "include *");
- bbtk::Factory::PackageMapType::const_iterator i;
+//std::cout<<"JCP bbRegeneratePackageDoc.cpp I->InterpretLine( include );"<<std::endl;
+ I->InterpretLine( "include *");
+ bbtk::Factory::PackageMapType::const_iterator i;
for (i = I->GetExecuter()->GetFactory()->GetPackageMap().begin();
i != I->GetExecuter()->GetFactory()->GetPackageMap().end();
++i)
{
+//std::cout<<" if (i->second->GetName()==user) continue;"<<std::endl;
if (i->second->GetName()=="user") continue;
RegenerateDoc(i->second,doc_path);
}
std::cout << "* ERROR : "<<e.GetErrorMessage()<<std::endl;
return 1;
}
- return 0;
+ // JGRR & CM : this kills this never-ending process when it's supposed to!
+ std::cout << "bbRegeneratePackageDoc has finished normally. It will be aborted on purpose."<< std::endl;
+ abort();
+ // EO JGRR CM
+ return 0;
}
//==========================================================================