Changeset 049dc06 in tol
- Timestamp:
- Nov 17, 2009, 9:07:05 AM (17 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- e8e5f61
- Parents:
- dc4fc4b
- Location:
- tol
- Files:
-
- 7 edited
-
OIS/oisloader.cpp (modified) (1 diff)
-
bbasic/sys.cpp (modified) (1 diff)
-
bparser/par.cpp (modified) (1 diff)
-
btol/bgrammar/nameblock.cpp (modified) (5 diffs)
-
btol/bgrammar/tol_bnameblock.h (modified) (1 diff)
-
lang/language.cpp (modified) (4 diffs)
-
lang/tol_blanguag.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
tol/OIS/oisloader.cpp
rdc4fc4b r049dc06 1079 1079 BText package; 1080 1080 Ensure(Read(package,set_)); 1081 LoadRequiredPackage(package);1081 BPackage::Load(package); 1082 1082 //x.AddRequiredPackage(package); 1083 1083 } -
tol/bbasic/sys.cpp
rdc4fc4b r049dc06 81 81 # endif 82 82 BSys::MkDir(tolAppData_+"syslog", true); 83 BSys::MkDir(tolAppData_+"OIS /Require/tol_pkg/"+TOLVersionShortName(), true);83 BSys::MkDir(tolAppData_+"OIS", true); 84 84 BSys::MkDir(tolAppData_+"tests_results",true); 85 85 tolAppData_ = GetStandardAbsolutePath(tolAppData_); -
tol/bparser/par.cpp
rdc4fc4b r049dc06 1158 1158 { 1159 1159 BText package = scan_->NextArgument(); 1160 LoadRequiredPackage(package);1160 BPackage::Load(package); 1161 1161 } 1162 1162 -
tol/btol/bgrammar/nameblock.cpp
rdc4fc4b r049dc06 102 102 owner_ (NULL), 103 103 nonPrivateMembers_(0), 104 requiredPackages_(NULL) 104 requiredPackages_(NULL), 105 doingRebuildFullNameDeep(false) 105 106 { 106 107 SetEmptyKey(public_ ,NULL); … … 124 125 owner_ (NULL), 125 126 nonPrivateMembers_(0), 126 requiredPackages_(NULL) 127 requiredPackages_(NULL), 128 doingRebuildFullNameDeep(false) 127 129 { 128 130 SetEmptyKey(public_ ,NULL); … … 146 148 owner_ (NULL), 147 149 nonPrivateMembers_(0), 148 requiredPackages_(NULL) 150 requiredPackages_(NULL), 151 doingRebuildFullNameDeep(false) 149 152 { 150 153 short isAssigned = BFSMEM_Hndlr->IsAssigned(this,this->_bfsm_PageNum__); … … 1048 1051 { 1049 1052 //Std(BText("\n")+"BNameBlock::SelectMembersDeep Exploring NameBlock "+Name()); 1053 if(doingRebuildFullNameDeep) 1054 { return; } 1055 doingRebuildFullNameDeep = true; 1050 1056 BSyntaxObject* obj; 1051 1057 BUserNameBlock* unb; … … 1103 1109 } 1104 1110 } 1111 doingRebuildFullNameDeep = false; 1105 1112 } 1106 1113 -
tol/btol/bgrammar/tol_bnameblock.h
rdc4fc4b r049dc06 86 86 int level_; 87 87 int nonPrivateMembers_; 88 bool doingRebuildFullNameDeep; 88 89 public: 89 90 static bool Initialize(); -
tol/lang/language.cpp
rdc4fc4b r049dc06 1302 1302 } 1303 1303 1304 //-------------------------------------------------------------------- 1305 BSyntaxObject* LoadRequiredPackage(const BText& package, bool retry) 1306 //-------------------------------------------------------------------- 1307 { 1308 static BText help_ = I2( 1309 "Read information about TOL packages on ", 1310 "Lea información acerca de los paquetes TOL en ")+ 1311 "https://www.tol-project.org/wiki/TolPkg\n"; 1304 BText BPackage::help_ = I2( 1305 "Read information about TOL packages on ", 1306 "Lea información acerca de los paquetes TOL en ")+ 1307 "https://www.tol-project.org/wiki/TolPkg\n"; 1308 1309 BText BPackage::localRoot_ = 1310 BSys::TolAppData()+"OIS/Require/tol_pkg/"+ 1311 TOLVersionShortName()+"/"; 1312 1313 BText BPackage::urlRoot_ = 1314 BText("http://packages.tol-project.org/tol_pkg/")+ 1315 TOLVersionShortName()+"/"; 1316 1317 //-------------------------------------------------------------------- 1318 BText BPackage::LocalPath(const BText& package) 1319 //-------------------------------------------------------------------- 1320 { 1321 BText path = localRoot_+package+".oza"; 1322 return(path); 1323 } 1324 1325 //-------------------------------------------------------------------- 1326 BText BPackage::Url(const BText& package) 1327 //-------------------------------------------------------------------- 1328 { 1329 BText url = urlRoot_+package+".oza"; 1330 return(url); 1331 } 1332 1333 //-------------------------------------------------------------------- 1334 bool BPackage::CleanLocal(const BText& package) 1335 //-------------------------------------------------------------------- 1336 { 1337 return(BSys::Remove(LocalPath(package))); 1338 } 1339 1340 //-------------------------------------------------------------------- 1341 bool BPackage::Install(const BText& package) 1342 //-------------------------------------------------------------------- 1343 { 1344 BText path = LocalPath(package); 1345 BText url = Url(package); 1346 BSys::MkDir(localRoot_,true); 1347 BText order = BText("wget ")+ 1348 url+" "+ 1349 "-O\""+ReplaceSlash(path)+"\""; 1350 Std(I2("Installing required package ", 1351 "Instalando el paquete requerido ")+package+"\n"+order+"\n"); 1352 #ifdef UNIX 1353 system(order); 1354 #else 1355 BSys::WinSystem(order,0,true); 1356 #endif 1357 BDir dir = path; 1358 bool ok = true; 1359 if(!dir.Exist() || !dir.IsFile() || !dir.Bytes()) 1360 { 1361 ok = false; 1362 Error(I2("Cannot install empty package ", 1363 "No se puede instalar el paquete vacÃo ")+ 1364 package+"\n"+help_); 1365 } 1366 return(ok); 1367 } 1368 1369 //-------------------------------------------------------------------- 1370 BSyntaxObject* BPackage::Load(const BText& package, bool retry) 1371 //-------------------------------------------------------------------- 1372 { 1312 1373 BSyntaxObject* pkg = GraNameBlock()->FindOperand(package,false); 1313 BText path = BSys::TolAppData()+"OIS/Require/tol_pkg/"+1314 TOLVersionShortName()+"/"+package+".oza";1374 bool ok = pkg!=NULL; 1375 BText path = LocalPath(package); 1315 1376 BDir dir = path; 1316 BText url = BText("http://packages.tol-project.org/tol_pkg/")+ 1317 TOLVersionShortName()+"/"+package+".oza"; 1318 if(!pkg) 1377 if(!ok) 1319 1378 { 1320 1379 if(!dir.Exist()) 1321 1380 { 1322 1323 BText order = BText("wget ")+ 1324 url+" "+ 1325 "-O\""+ReplaceSlash(path)+"\""; 1326 Std(I2("Installing required package ", 1327 "Instalando el paquete requerido ")+package+"\n"+order+"\n"); 1328 #ifdef UNIX 1329 system(order); 1330 #else 1331 BSys::WinSystem(order,0,true); 1332 #endif 1333 dir = path; 1334 } 1335 if(dir.Exist() && dir.IsFile()) 1336 { 1337 if(!dir.Bytes()) 1338 { 1339 Error(I2("Cannot install empty package ", 1340 "No se puede instalar el paquete vacÃo ")+ 1341 package+"\n"+help_); 1342 } 1343 else 1344 { 1345 int oldLevel = BGrammar::Level(); 1346 BGrammar::PutLevel(0); 1347 BSyntaxObject* aux = BOisLoader::LoadFull(path); 1348 if(aux && (aux->Grammar()==GraSet())) 1349 { 1350 BSet& set = Set(aux); 1351 if((set.Card()==1)&&(set[1]->Grammar()==GraNameBlock())) 1352 { 1353 pkg = set[1]; 1354 pkg->IncNRefs(); 1355 pkg->IncNRefs(); 1356 } 1381 ok = Install(package); 1382 } 1383 if(ok) 1384 { 1385 int oldLevel = BGrammar::Level(); 1386 BGrammar::PutLevel(0); 1387 BSyntaxObject* aux = BOisLoader::LoadFull(path); 1388 if(aux && (aux->Grammar()==GraSet())) 1389 { 1390 BSet& set = Set(aux); 1391 if((set.Card()==1)&&(set[1]->Grammar()==GraNameBlock())) 1392 { 1393 pkg = set[1]; 1394 pkg->IncNRefs(); 1395 pkg->IncNRefs(); 1396 BNameBlock::AddGlobalRequiredPackage(package); 1357 1397 } 1358 BGrammar::PutLevel(oldLevel); 1359 } 1398 } 1399 BGrammar::PutLevel(oldLevel); 1400 ok = pkg!=NULL; 1360 1401 } 1361 1402 } 1362 BText ok= I2("Loaded","Ha sido cargado");1403 BText load = I2("Loaded","Ha sido cargado"); 1363 1404 BText help = ""; 1364 if(!pkg) 1365 { 1405 if(!ok) 1406 { 1407 BText path = LocalPath(package); 1408 BText url = Url(package); 1366 1409 if(dir.Exist()) 1367 1410 { … … 1376 1419 "y será reinstalado desde ")+ 1377 1420 url); 1378 return(Load RequiredPackage(package, false));1421 return(Load(package, false)); 1379 1422 } 1380 1423 else … … 1388 1431 } 1389 1432 } 1390 ok= I2("NOT loaded","No ha sido cargado");1433 load = I2("NOT loaded","No ha sido cargado"); 1391 1434 help = help_; 1392 1435 } 1393 Std( ok+I2(" package ", " el paquete ")+package+"\n"+help);1436 Std(load+I2(" package ", " el paquete ")+package+"\n"+help); 1394 1437 if(pkg) 1395 1438 { 1396 BNameBlock::AddGlobalRequiredPackage(package);1397 1439 BUserNameBlock* nbBuilding = BNameBlock::Building(); 1398 1440 if(nbBuilding) … … 1403 1445 return(pkg); 1404 1446 } 1447 -
tol/lang/tol_blanguag.h
rdc4fc4b r049dc06 70 70 TOL_API void StopFlagOff(); 71 71 TOL_API bool StopFlag(); 72 TOL_API BSyntaxObject* LoadRequiredPackage(const BText& package, bool retry=false); 72 73 //-------------------------------------------------------------------- 74 class TOL_API BPackage 75 //-------------------------------------------------------------------- 76 { 77 private: 78 static BText help_; 79 static BText localRoot_; 80 static BText urlRoot_; 81 public: 82 static BText LocalPath(const BText& package); 83 static BText Url(const BText& package); 84 static bool CleanLocal(const BText& package); 85 static bool Install(const BText& package); 86 static bool Upgrade(const BText& package); 87 static BSyntaxObject* Load(const BText& package, bool retry=false); 88 }; 73 89 74 90 BDate TsrFirstDate(BSyntaxObject* obj);
Note: See TracChangeset
for help on using the changeset viewer.
