Skip to content

Commit af5f5fc

Browse files
authored
Merge pull request #26 from intersystems-community/stage
Stage
2 parents afed76b + e0826b1 commit af5f5fc

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

src/cls/ZPM/Package.cls

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ Method urlGet() As %String
9898
SET host = ..ServerURL()
9999
SET name = $ZCONVERT(..name, "O", "URL")
100100
SET version = $ZCONVERT(..version, "O", "URL")
101-
RETURN host _ "/" _ name _ "/-/" _ name _ "-" _ version _ ".tgz"
101+
RETURN host _ "/download/" _ name _ "/-/" _ name _ "-" _ version _ ".tgz"
102102
}
103103

104104
Method installerUrlGet() As %String
@@ -266,7 +266,6 @@ ClassMethod DownloadPackageFromGitHub(url As %String) As %String
266266
Do fs.CopyFromAndSave(ht.HttpResponse.Data)
267267

268268
Set outputFolder = $$$FileTempDir
269-
Do ##class(%File).CreateDirectory(outputFolder)
270269
Set res = $zf(-100, "", "tar", "-zxvf", archiveFileName, "-C", outputFolder)
271270

272271
Return outputFolder
@@ -286,16 +285,29 @@ ClassMethod GetModuleMeta(url As %String) As %DynamicObject
286285
Set ht.Port = port
287286
}
288287
Set ht.Location = tComponents("path")_"master/module.xml"
289-
290288
$$$ThrowOnError(ht.Get())
291289
If (ht.HttpResponse.StatusCode'=200) {
292290
$$$ThrowStatus($$$ERROR(5001,"Unable to download XML "_ht.Location))
293291
}
294-
$$$ThrowOnError(##class(%XML.XPATH.Document).CreateFromStream(ht.HttpResponse.Data, .xpathdoc))
292+
Set tmpFolder = $$$FileTempDir
293+
294+
Set stream=##class(%Stream.FileCharacter).%New()
295+
Do stream.LinkToFile(tmpFolder_"/module.xml")
296+
Set stream.TranslateTable = "UTF8"
297+
Do stream.CopyFrom(ht.HttpResponse.Data)
298+
Do stream.%Save()
299+
300+
set binaryStream=##class(%Stream.FileBinary).%New()
301+
do binaryStream.LinkToFile(tmpFolder_"/module.xml")
302+
303+
$$$ThrowOnError(##class(%XML.XPATH.Document).CreateFromStream(binaryStream, .xpathdoc))
295304
$$$ThrowOnError(xpathdoc.EvaluateExpression("/","Export/Document/Module/Version/text()", .tResults))
296305
set jo.version = tResults.GetAt(1).ValueGet()
297306
$$$ThrowOnError(xpathdoc.EvaluateExpression("/","Export/Document/Module/Name/text()", .tResults))
298-
set jo.name = tResults.GetAt(1).ValueGet()
307+
set jo.name = $$$lcase(tResults.GetAt(1).ValueGet())
308+
309+
Do ##class(%File).RemoveDirectoryTree(tmpFolder)
310+
299311
return jo
300312
}
301313

@@ -307,8 +319,8 @@ ClassMethod UpdatePackage(jo As %DynamicObject) As %Status
307319
#; set url = $ZCONVERT(url, "L")
308320
If $Extract(url, *)'="/" {
309321
Set url = url _ "/"
310-
}
311-
Set name = ..GetPackageNameFromRepositoryURL(url)
322+
}
323+
Set name = ..GetPackageNameFromRepositoryURL(url)
312324
Set meta = ..GetModuleMeta(url)
313325
If (meta.version = "") { $$$ThrowStatus($$$ERROR(5001, "Invalid package version")) }
314326
If (meta.name = "") { $$$ThrowStatus($$$ERROR(5001, "Package name is empty")) }
@@ -339,7 +351,6 @@ ClassMethod UpdatePackage(jo As %DynamicObject) As %Status
339351

340352
ClassMethod Publish(url As %String, name As %String) As %Status
341353
{
342-
343354
Set outputFolder = ..DownloadPackageFromGitHub(url)
344355
Set packageFolder = ##class(%File).NormalizeDirectory(name _ "-master", outputFolder)
345356
Return ..LoadPackage(packageFolder, url, 1)
@@ -353,7 +364,7 @@ ClassMethod LoadFromGitHub(Url = "")
353364
If $e(Url, *)'="/" {
354365
Set Url = Url _ "/"
355366
}
356-
Set name = ..GetPackageNameFromRepositoryURL(Url)
367+
Set name = ..GetPackageNameFromRepositoryURL(Url)
357368
Set outputFolder = ..DownloadPackageFromGitHub(Url)
358369
Set packageFolder = ##class(%File).NormalizeDirectory(name _ "-master", outputFolder)
359370
Set tSC = ..LoadPackage(packageFolder, Url)

src/cls/ZPM/Registry.cls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
3131
<Route Url="/packages" Method="POST" Call="PublishPackage" Cors="true" />
3232

3333
<!-- Package Archive -->
34-
<Route Url="/:package/-/:file" Method="GET" Call="GetArchive" Cors="true" />
34+
<Route Url="/download/:package/-/:file" Method="GET" Call="GetArchive" Cors="true" />
3535

3636

3737
<!-- Temp url, update package, should be combined with "POST /packages"-->

0 commit comments

Comments
 (0)