aboutsummaryrefslogtreecommitdiff
path: root/stage1/Stage1Lib.scala
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-03-06 20:07:57 -0500
committerChristopher Vogt <oss.nsp@cvogt.org>2017-03-06 20:07:57 -0500
commit64ccd14614182c517995a88b888f0d7b7212f668 (patch)
tree07aa160fd60aa50c5d77a9d48eb8840c925d4fd6 /stage1/Stage1Lib.scala
parent78b22ae86df111b89db1ecb20c40a0384b148698 (diff)
downloadcbt-64ccd14614182c517995a88b888f0d7b7212f668.tar.gz
cbt-64ccd14614182c517995a88b888f0d7b7212f668.tar.bz2
cbt-64ccd14614182c517995a88b888f0d7b7212f668.zip
support publishing to basic-auth protected maven repositories
Diffstat (limited to 'stage1/Stage1Lib.scala')
-rw-r--r--stage1/Stage1Lib.scala14
1 files changed, 11 insertions, 3 deletions
diff --git a/stage1/Stage1Lib.scala b/stage1/Stage1Lib.scala
index 87d3a79..91e63f1 100644
--- a/stage1/Stage1Lib.scala
+++ b/stage1/Stage1Lib.scala
@@ -56,18 +56,26 @@ class Stage1Lib( logger: Logger ) extends BaseLib{
def write(file: File, content: String, options: OpenOption*): File = Stage0Lib.write(file, content, options:_*)
+ def addHttpCredentials( connection: HttpURLConnection, credentials: String ): Unit = {
+ val encoding = new sun.misc.BASE64Encoder().encode(credentials.getBytes)
+ connection.setRequestProperty("Authorization", "Basic " ++ encoding)
+ }
+
def download(url: URL, target: File, sha1: Option[String], replace: Boolean = false): Boolean = {
if( target.exists && !replace ){
- logger.resolver(green("found ") ++ url.string)
+ logger.resolver(green("found ") ++ url.show)
true
} else {
val incomplete = ( target ++ ".incomplete" ).toPath;
val connection = Stage0Lib.openConnectionConsideringProxy(url)
+ Option(url.getUserInfo).filter(_ != "").foreach(
+ addHttpCredentials(connection,_)
+ )
if(connection.getResponseCode != HttpURLConnection.HTTP_OK){
- logger.resolver(blue("not found: ") ++ url.string)
+ logger.resolver(blue("not found: ") ++ url.show)
false
} else {
- System.err.println(blue("downloading ") ++ url.string)
+ System.err.println(blue("downloading ") ++ url.show)
logger.resolver(blue("to ") ++ target.string)
target.getParentFile.mkdirs
val stream = connection.getInputStream