Changeset 95edff5 in tol
- Timestamp:
- Jul 8, 2010, 5:14:29 PM (16 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- cd9c096
- Parents:
- c13253c
- Location:
- tol/stdlib/general/TolPackage
- Files:
-
- 2 edited
-
client.tol (modified) (1 diff)
-
repository.tol (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
tol/stdlib/general/TolPackage/client.tol
rc13253c r95edff5 66 66 @Repository r = @Repository::Get(repository, True); 67 67 r::Exist(package.version) 68 }; 69 70 ////////////////////////////////////////////////////////////////////////////// 71 Text _.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 ////////////////////////////////////////////////////////////////////////////// 81 Real InstallFromUrl(Text url, Text package.version) 82 ////////////////////////////////////////////////////////////////////////////// 83 { 84 Text pack = package.version+".zip"; 85 @Repository::DownloadPackageFromUrl(url,package.version) 68 86 }; 69 87 -
tol/stdlib/general/TolPackage/repository.tol
rc13253c r95edff5 191 191 ////////////////////////////////////////////////////////////////////////////// 192 192 //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 193 232 Real DownloadPackage(Text packageName) 194 233 //////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.
