Changeset d89e153 in tol
- Timestamp:
- Feb 23, 2011, 5:35:50 PM (16 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- fef69e3
- Parents:
- 9b57f60f
- Location:
- tol
- Files:
-
- 4 edited
-
OIS/oisloader.cpp (modified) (1 diff)
-
bparser/par.cpp (modified) (1 diff)
-
lang/language.cpp (modified) (5 diffs)
-
stdlib/general/TolPackage/client.tol (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/OIS/oisloader.cpp
r9b57f60f rd89e153 1146 1146 BText package; 1147 1147 Ensure(Read(package,set_)); 1148 BPackage::Load(package );1148 BPackage::Load(package,true); 1149 1149 //x.AddRequiredPackage(package); 1150 1150 } -
tol/bparser/par.cpp
r9b57f60f rd89e153 1193 1193 { 1194 1194 BText package = scan_->NextArgument(); 1195 BPackage::Load(package );1195 BPackage::Load(package,true); 1196 1196 } 1197 1197 -
tol/lang/language.cpp
r9b57f60f rd89e153 1380 1380 1381 1381 //-------------------------------------------------------------------- 1382 BText LocalLastCompatible(const BText& package) 1383 //-------------------------------------------------------------------- 1384 { 1385 BSyntaxObject* lcv = GraText()->EvaluateExpr(BText( 1386 "Text TolPackage::Client::LocalLastCompatible(" 1387 "\"")+package+"\");"); 1388 if(!lcv) { return(""); } 1389 BText package_version = Text(lcv); 1390 if(package_version=="") { package_version = package; } 1391 //Std(BText("\nTRACE BPackage::Load 2.2.1 package='")+package_version+"'"); 1392 //Std(BText("\nTRACE BPackage::Load 2.2.2 package_version='")+package_version+"'"); 1393 DESTROY(lcv); 1394 return(package_version); 1395 }; 1396 1397 //-------------------------------------------------------------------- 1382 1398 BSyntaxObject* BPackage::Load( 1383 1399 const BText& package_version_, … … 1389 1405 //Std(BText("\nTRACE BPackage::Load 1 package_version='")+package_version+"'"); 1390 1406 int point = package_version.Find(".",1); 1391 if(point>=0) 1407 int point2 = package_version.Find(".",point+1); 1408 if(point>=0 && point2>=0) 1392 1409 { 1393 1410 package = package_version.SubString(0,point-1); 1394 //Std(BText("\nTRACE BPackage::Load 2.1 package='")+package+"'"); 1411 } 1412 else if(point>=0 && point2<0) 1413 { 1414 package = package_version.SubString(0,point-1); 1415 package_version = LocalLastCompatible(package_version); 1416 point2 = package_version.Find(".",point+1); 1395 1417 } 1396 1418 else 1397 1419 { 1398 1420 package = package_version; 1399 BSyntaxObject* lcv = GraText()->EvaluateExpr(BText( 1400 "Text TolPackage::Client::LocalLastCompatible(" 1401 "\"")+package+"\");"); 1402 if(!lcv) { return(false); } 1403 package_version = Text(lcv); 1404 if(package_version=="") { package_version = package; } 1405 //Std(BText("\nTRACE BPackage::Load 2.2.1 package='")+package_version+"'"); 1406 //Std(BText("\nTRACE BPackage::Load 2.2.2 package_version='")+package_version+"'"); 1407 DESTROY(lcv); 1421 package_version = LocalLastCompatible(package); 1408 1422 } 1409 1423 BSyntaxObject* pkg = GraNameBlock()->FindOperand(package,false); 1410 BText path = LocalPath(package_version);1424 BText path = (point2>=0)?LocalPath(package_version):""; 1411 1425 //Std(BText("\nTRACE BPackage::Load 3 path='")+path+"'"); 1412 BDir dirPath = path; 1426 BDir dirPath(":::"); 1427 if(path.HasName()) { dirPath = path; } 1413 1428 1414 1429 bool ok = pkg!=NULL; … … 1422 1437 { 1423 1438 ok=dirPath.Exist()!=0; 1424 if(!ok )1439 if(!ok & path.HasName()) 1425 1440 { 1426 1441 BDir zipPath = path+".zip"; … … 1431 1446 zip.DirExtract("*",dirPath.Name()); 1432 1447 zip.Close(); 1433 } 1434 ok=dirPath.Exist()!=0; 1448 dirPath = path; 1449 } 1450 ok = dirPath.Exist(); 1435 1451 } 1436 1452 //Std(BText("\nTRACE BPackage::Load 4 ok=")+ok); 1437 if(!ok )1453 if(!ok && retry) 1438 1454 { 1439 1455 ok = Install(package_version); 1456 package_version = LocalLastCompatible(package_version); 1440 1457 //Std(BText("\nTRACE BPackage::Load 5 ok=")+ok); 1441 if(ok) { return(BPackage::Load(package_version _, false)); }1458 if(ok) { return(BPackage::Load(package_version, false)); } 1442 1459 } 1443 1460 if(ok) … … 1474 1491 { 1475 1492 //Std(BText("\nTRACE BPackage::Load 12 dirPath='")+dirPath.Name()+"'"); 1493 if(path.HasName()) { dirPath = path; } 1476 1494 if(!dirPath.Exist()) 1477 1495 { -
tol/stdlib/general/TolPackage/client.tol
r9b57f60f rd89e153 233 233 ////////////////////////////////////////////////////////////////////////////// 234 234 { 235 //WriteLn("TRACE [GetMinTolVersionForPackage] 1 package='"<<package+"'"); 236 If(!ChecktolProjectPing(?), "", { 237 //WriteLn("TRACE [GetMinTolVersionForPackage] 2"); 238 Set repositories = 239 TolConfigManager::Config::Upgrading::TolPackage::Repositories; 240 Real K = Card(repositories); 241 Real k = 1; 242 Text found = ""; 243 //WriteLn("TRACE [GetMinTolVersionForPackage] 3 K="<<K); 244 While(And(found=="", k<=K), 245 { 246 //WriteLn("TRACE [GetMinTolVersionForPackage] 4 repositories["<<k+"]="<<repositories[k]); 247 Set pkgLst = GetRepositoryInfo(repositories[k]+"?" 248 "action=versions&limit=1&"+ 249 "package="+package); 250 //WriteLn("TRACE [GetMinTolVersionForPackage] 5 pkgInfo="<<pkgInfo); 251 //WriteLn("TRACE [GetMinTolVersionForPackage] 6 pkgLst="<<pkgLst); 252 //WriteLn("TRACE [GetMinTolVersionForPackage] 7 Card(pkgLst)="<<Card(pkgLst)); 253 Text If(Card(pkgLst)>0, found := pkgLst[1]->te_min_tol_version); 254 Real k := k+1 255 }); 256 found 257 })}; 258 259 ////////////////////////////////////////////////////////////////////////////// 260 Text _.autodoc.member.RemoteFindRepository = 261 "Devuelve el repositorio al que pertenece un paquete dado de entre aquellos " 262 "repositorios dados de alta en : \n" 263 " Set TolConfigManager::Config::Upgrading::TolPackage::Repositories\n" 264 "Si no se encuentra el paquete en ninguno de ellos se devuelve la cadena " 265 "vacía."; 266 Text RemoteFindRepository(Text package) 267 ////////////////////////////////////////////////////////////////////////////// 268 { 235 269 //WriteLn("TRACE [RemoteFindRepository] 1 package='"<<package+"'"); 236 270 If(!ChecktolProjectPing(?), "", { … … 246 280 //WriteLn("TRACE [RemoteFindRepository] 4 repositories["<<k+"]="<<repositories[k]); 247 281 Set pkgLst = GetRepositoryInfo(repositories[k]+"?" 248 "action=versions&limit=1&"+249 "package="+package);250 //WriteLn("TRACE [RemoteFindRepository] 5 pkgInfo="<<pkgInfo);251 //WriteLn("TRACE [RemoteFindRepository] 6 pkgLst="<<pkgLst);252 //WriteLn("TRACE [RemoteFindRepository] 7 Card(pkgLst)="<<Card(pkgLst));253 Text If(Card(pkgLst)>0, found := pkgLst[1]->te_min_tol_version);254 Real k := k+1255 });256 found257 })};258 259 //////////////////////////////////////////////////////////////////////////////260 Text _.autodoc.member.RemoteFindRepository =261 "Devuelve el repositorio al que pertenece un paquete dado de entre aquellos "262 "repositorios dados de alta en : \n"263 " Set TolConfigManager::Config::Upgrading::TolPackage::Repositories\n"264 "Si no se encuentra el paquete en ninguno de ellos se devuelve la cadena "265 "vacía.";266 Text RemoteFindRepository(Text package)267 //////////////////////////////////////////////////////////////////////////////268 {269 //WriteLn("TRACE [RemoteFindRepository] 1 package='"<<package+"'");270 If(!ChecktolProjectPing(?), "", {271 //WriteLn("TRACE [RemoteFindRepository] 2");272 Set repositories =273 TolConfigManager::Config::Upgrading::TolPackage::Repositories;274 Real K = Card(repositories);275 Real k = 1;276 Text found = "";277 //WriteLn("TRACE [RemoteFindRepository] 3 K="<<K);278 While(And(found=="", k<=K),279 {280 //WriteLn("TRACE [RemoteFindRepository] 4 repositories["<<k+"]="<<repositories[k]);281 Set pkgLst = GetRepositoryInfo(repositories[k]+"?"282 282 "action=versions&limit=1&"+"package="+package+"&"+min_tol_version_cond); 283 //WriteLn("TRACE [RemoteFindRepository] 5 pkgInfo="<<pkgInfo);284 283 //WriteLn("TRACE [RemoteFindRepository] 6 pkgLst="<<pkgLst); 285 284 //WriteLn("TRACE [RemoteFindRepository] 7 Card(pkgLst)="<<Card(pkgLst)); … … 324 323 If(!ChecktolProjectPing(?), 0, { 325 324 Real OSDirMake(localRoot); 326 //WriteLn("TRACE [RemoteInstallPackage] 1 repository='"<<repository+"'"); 327 Text package.version = package; 325 //WriteLn("TRACE [DownloadPackage] 1 repository='"<<repository+"'"); 328 326 Real ok = True; 329 Text If(TextFind(package,"."), 330 { 331 Text package := Tokenizer(package.version,".")[1] 332 }, 333 { 334 Set pkgLst = GetRepositoryInfo(repository+"?" 335 "action=versions&limit=1&"+ 336 "package="+package+"&"+ 337 min_tol_version_cond); 338 If(!Card(pkgLst), 339 { 340 Real ok := False; 341 "" 342 }, 343 { 344 Text package.version := pkgLst[1]->co_name_version 345 }) 327 Text package.orig = package; 328 Set pkg.tok = Tokenizer(package,"."); 329 Real pkg.tok.num = Card(pkg.tok ); 330 Text package := pkg.tok[1]; 331 Text package.version = Case( 332 pkg.tok.num==3, pkg.tok[1]+"."+pkg.tok[2]+"."+pkg.tok[3], 333 pkg.tok.num==2, pkg.tok[1]+"."+pkg.tok[2], 334 pkg.tok.num==1, pkg.tok[1]); 335 Set pkgLst = GetRepositoryInfo(repository+"?" 336 "action=versions&limit=1&"+ 337 "package="+package.version+"&"+ 338 min_tol_version_cond); 339 Real ok := Card(pkgLst); 340 Text If(ok, 341 { 342 Text package.version := pkgLst[1]->co_name_version 346 343 }); 347 344 If(!ok, 0, { 348 //WriteLn("TRACE [RemoteInstallPackage] 2 package='"<<package+"'"); 349 //WriteLn("TRACE [RemoteInstallPackage] 3 package.version='"<<package.version+"'"); 345 //WriteLn("TRACE [DownloadPackage] 2.1 package.orig='"<<package.orig+"'"); 346 //WriteLn("TRACE [DownloadPackage] 2.2 package='"<<package+"'"); 347 //WriteLn("TRACE [DownloadPackage] 2.3 package.version='"<<package.version+"'"); 350 348 351 349 Text pack = package.version+".zip"; … … 359 357 "format=base64&"+ 360 358 "package="+package.version); 361 //WriteLn("TRACE [ RemoteInstallPackage] 4encoded='"<<encoded+"'");359 //WriteLn("TRACE [DownloadPackage] 3 encoded='"<<encoded+"'"); 362 360 Real DecodeBase64ToFile(localPack, encoded); 363 361 If(!FileExist(localPack), False,
Note: See TracChangeset
for help on using the changeset viewer.
