diff options
Diffstat (limited to 'src/mvncache.php')
-rw-r--r-- | src/mvncache.php | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/mvncache.php b/src/mvncache.php new file mode 100644 index 0000000..d296a4f --- /dev/null +++ b/src/mvncache.php @@ -0,0 +1,29 @@ +<?php +$mvnBaseUrl = 'http://repo1.maven.org/maven2'; + +$requestedArtifact = $_SERVER["REQUEST_URI"]; +$requestedArtifact = str_replace('/mvn', '', $requestedArtifact); +$baseLocalFolder = __DIR__; +$localFolder = $baseLocalFolder.substr($requestedArtifact, 0, strripos($requestedArtifact, '/')); +//echo $localFolder."<br>"; +if (!is_dir($localFolder)) { + mkdir($localFolder, 0770, true); +} + +$srcUrl = $mvnBaseUrl.$requestedArtifact; +//echo $srcUrl."<br>"; +$src = fopen($srcUrl, 'r'); + +$dstPath = $baseLocalFolder.$requestedArtifact; +//echo $dstPath; +$dst = fopen($dstPath, 'w'); + +stream_copy_to_stream($src, $dst); + +if (is_file($dstPath)) { + chmod($dstPath, 0660); + header('Location: http://'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]); +} else { + header('HTTP/1.0 404 Not Found'); +} +?> |