@@ -19,8 +19,6 @@ import (
19
19
"github.com/pkg/errors"
20
20
)
21
21
22
-
23
-
24
22
// ParseDevfile func validates the devfile integrity.
25
23
// Creates devfile context and runtime objects
26
24
func parseDevfile (d DevfileObj , flattenedDevfile bool ) (DevfileObj , error ) {
@@ -180,36 +178,30 @@ func parseParentAndPlugin(d DevfileObj) (err error) {
180
178
return nil
181
179
}
182
180
183
-
184
-
185
- func parseFromURI (uri string , curDevfile DevfileObj ) (DevfileObj , error ){
181
+ func parseFromURI (uri string , curDevfile DevfileObj ) (DevfileObj , error ) {
186
182
// validate URI
187
183
188
184
// absolute URL address
189
185
if strings .HasPrefix (uri , "http://" ) || strings .HasPrefix (uri , "https://" ) {
190
186
return ParseFromURL (uri )
191
187
}
192
188
193
- // absolute path on disk
194
- if strings .HasPrefix (uri , "file://" ) {
195
- return Parse (strings .TrimPrefix (uri , "file://" ))
196
- }
197
-
198
189
// relative path on disk
199
- if curDevfile .Ctx .GetAbsPath () != "" {
200
- // parse uri receives a relative path and resolves abspath
201
- return Parse (uri )
190
+ if curDevfile .Ctx .GetAbsPath () != "" {
191
+
192
+ return Parse (path . Join ( path . Dir ( curDevfile . Ctx . GetAbsPath ()), uri ) )
202
193
}
203
194
204
- if curDevfile .Ctx .GetURL () != "" {
195
+ if curDevfile .Ctx .GetURL () != "" {
205
196
u , err := url .Parse (curDevfile .Ctx .GetURL ())
206
- if err != nil {
197
+ if err != nil {
207
198
return DevfileObj {}, err
208
199
}
209
- u .Path = path .Join (u .Path , uri )
200
+
201
+ u .Path = path .Join (path .Dir (u .Path ), uri )
210
202
jointURL := u .String ()
211
203
return ParseFromURL (jointURL )
212
204
}
213
205
214
206
return DevfileObj {}, fmt .Errorf ("fail to parse from uri: %s" , uri )
215
- }
207
+ }
0 commit comments