@@ -406,39 +406,43 @@ func parseFromURI(importReference v1.ImportReference, curDevfileCtx devfileCtx.D
406406 return DevfileObj {}, err
407407 }
408408 }
409- } else if absoluteURL {
410- // absolute URL address
411- newUri = uri
409+ } else {
410+ if absoluteURL {
411+ // absolute URL address
412+ newUri = uri
413+ } else if curDevfileCtx .GetURL () != "" {
414+ // relative path to a URL
415+ u , err := url .Parse (curDevfileCtx .GetURL ())
416+ if err != nil {
417+ return DevfileObj {}, err
418+ }
419+ u .Path = path .Join (u .Path , uri )
420+ newUri = u .String ()
421+ } else {
422+ return DevfileObj {}, fmt .Errorf ("devfile context is missing absolute url and relative path to url" )
423+ }
424+
412425 d .Ctx = devfileCtx .NewURLDevfileCtx (newUri )
413426 if strings .Contains (newUri , "raw.githubusercontent.com" ) {
414427 urlComponents , err := util .GetGitUrlComponentsFromRaw (newUri )
415428 if err != nil {
416429 return DevfileObj {}, err
417430 }
418431 destDir := path .Dir (curDevfileCtx .GetAbsPath ())
419- err = getStackFromGit (urlComponents , destDir )
432+ err = getResourcesFromGit (urlComponents , destDir )
420433 if err != nil {
421434 return DevfileObj {}, err
422435 }
423436 }
424- } else if curDevfileCtx .GetURL () != "" {
425- // relative path to a URL
426- u , err := url .Parse (curDevfileCtx .GetURL ())
427- if err != nil {
428- return DevfileObj {}, err
429- }
430- u .Path = path .Join (path .Dir (u .Path ), uri )
431- newUri = u .String ()
432- d .Ctx = devfileCtx .NewURLDevfileCtx (newUri )
433437 }
434438 importReference .Uri = newUri
435439 newResolveCtx := resolveCtx .appendNode (importReference )
436440
437441 return populateAndParseDevfile (d , newResolveCtx , tool , true )
438442}
439443
440- func getStackFromGit (gitUrlComponents map [string ]string , destDir string ) error {
441- stackDir , err := ioutil .TempDir (os .TempDir (), fmt .Sprintf ("stack- git" ))
444+ func getResourcesFromGit (gitUrlComponents map [string ]string , destDir string ) error {
445+ stackDir , err := ioutil .TempDir (os .TempDir (), fmt .Sprintf ("git-resources " ))
442446 if err != nil {
443447 return fmt .Errorf ("failed to create dir: %s, error: %v" , stackDir , err )
444448 }
@@ -474,7 +478,7 @@ func parseFromRegistry(importReference v1.ImportReference, resolveCtx *resolutio
474478 }
475479 newResolveCtx := resolveCtx .appendNode (importReference )
476480
477- err = getStackFromRegistry (id , registryURL , destDir )
481+ err = getResourcesFromRegistry (id , registryURL , destDir )
478482 if err != nil {
479483 return DevfileObj {}, err
480484 }
@@ -492,7 +496,7 @@ func parseFromRegistry(importReference v1.ImportReference, resolveCtx *resolutio
492496 importReference .RegistryUrl = registryURL
493497 newResolveCtx := resolveCtx .appendNode (importReference )
494498
495- err := getStackFromRegistry (id , registryURL , destDir )
499+ err := getResourcesFromRegistry (id , registryURL , destDir )
496500 if err != nil {
497501 return DevfileObj {}, err
498502 }
@@ -520,8 +524,8 @@ func getDevfileFromRegistry(id, registryURL, version string, httpTimeout *int) (
520524 return util .HTTPGetRequest (param , 0 )
521525}
522526
523- func getStackFromRegistry (id , registryURL , destDir string ) error {
524- stackDir , err := ioutil .TempDir (os .TempDir (), fmt .Sprintf ("stack -%s" , id ))
527+ func getResourcesFromRegistry (id , registryURL , destDir string ) error {
528+ stackDir , err := ioutil .TempDir (os .TempDir (), fmt .Sprintf ("registry-resources -%s" , id ))
525529 if err != nil {
526530 return fmt .Errorf ("failed to create dir: %s, error: %v" , stackDir , err )
527531 }
0 commit comments