Changeset 95edff5 in tol


Ignore:
Timestamp:
Jul 8, 2010, 5:14:29 PM (16 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
cd9c096
Parents:
c13253c
Message:

Refs #916
Nuevo método TolPackage::Client::InstallFromUrl para instalación manual mediante llamada al étodo interno Static TolPackage::Client::@Repository::DownloadPackageFromUrl

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@2385 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tol/stdlib/general/TolPackage
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tol/stdlib/general/TolPackage/client.tol

    rc13253c r95edff5  
    6666  @Repository r = @Repository::Get(repository, True);
    6767  r::Exist(package.version)
     68};
     69
     70//////////////////////////////////////////////////////////////////////////////
     71Text _.autodoc.member.InstallFromUrl =
     72"Instala desde una URL arbitraria un paquete determinado para que esté "
     73"disponible llamando a #Require. \n"
     74"La URL puede ser en realidad un directorio local para "
     75"facilitar proceso de instalación cerrada. Para ello la URL comenzará por "
     76"file:// seguido del path local donde se ubica el repositorio.\n"
     77"Si la URL empieza por http:// https:// ftp:// o cualquier otro protocolo"
     78"reconocible por el sistema operativo se realizará la correspondiente "
     79"descarga remota. \n";
     80//////////////////////////////////////////////////////////////////////////////
     81Real InstallFromUrl(Text url, Text package.version)
     82//////////////////////////////////////////////////////////////////////////////
     83{
     84  Text pack = package.version+".zip";
     85  @Repository::DownloadPackageFromUrl(url,package.version)
    6886};
    6987
  • tol/stdlib/general/TolPackage/repository.tol

    rc13253c r95edff5  
    191191//////////////////////////////////////////////////////////////////////////////
    192192//Copia un fichero del repositorio remoto al directorio local de paquetes
     193  Static Real DownloadPackageFromUrl(Text url, Text packageName)
     194//////////////////////////////////////////////////////////////////////////////
     195{
     196  Real prtPos = TextFind(url,"://")+2;
     197  Text protocol = Sub(url,1,prtPos);
     198  //Resto de la URL tras el protocolo
     199  Real isRemote =  protocol!="file://";
     200
     201  Text pack = packageName+".zip";
     202  Text oza = packageName+"/"+packageName+".oza";
     203  Text localPack = TolPackage::Client::_.localRoot+pack;
     204  Text localOza = TolPackage::Client::_.localRoot+oza;
     205  Text localDir = TolPackage::Client::_.localRoot+packageName;
     206 
     207  If(FileExist(localPack), OSFilRemove(localPack));
     208//WriteLn("TRACE DownloadPackage localPack="<<localPack);
     209  If(!isRemote,
     210  {
     211    Text address =  Sub(url,prtPos+1,TextLength(url));
     212  //WriteLn("TRACE DownloadPackage  cp \""+_.address+@Repository::_.platform+"/"+pack+"\" \""+localPack+"\"");
     213    OSFilCopy(address+"/"+pack,localPack)
     214  },
     215  {
     216    Set CurlApi::GetUrl([[
     217      Text url  = url+"/"+pack,
     218      Text file = localPack ]])
     219  });
     220  If(!FileExist(localPack), False,
     221  {
     222  //WriteLn("TRACE DownloadPackage UnpackFull("<<localDir+")");
     223    Real PackArchive::UnpackFull("ZipArchive", localDir);
     224    OSFilRemove(localPack);
     225    True
     226  });
     227  FileExist(localOza)
     228};
     229
     230//////////////////////////////////////////////////////////////////////////////
     231//Copia un fichero del repositorio remoto al directorio local de paquetes
    193232  Real DownloadPackage(Text packageName)
    194233//////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.