diff options
Diffstat (limited to 'meta/classes/crate-fetch.bbclass')
-rw-r--r-- | meta/classes/crate-fetch.bbclass | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/meta/classes/crate-fetch.bbclass b/meta/classes/crate-fetch.bbclass index c0ed434a96..04d76c0de8 100644 --- a/meta/classes/crate-fetch.bbclass +++ b/meta/classes/crate-fetch.bbclass @@ -7,7 +7,25 @@ # crate://<packagename>/<version> # -python () { - import crate - bb.fetch2.methods.append( crate.Crate() ) +def import_crate(d): + import crate + if not getattr(crate, 'imported', False): + bb.fetch2.methods.append(crate.Crate()) + crate.imported = True + +python crate_import_handler() { + import_crate(d) } + +addhandler crate_import_handler +crate_import_handler[eventmask] = "bb.event.RecipePreFinalise" + +def crate_get_srcrev(d): + import_crate(d) + srcuri = d.getVar("SRC_URI") + if "crate://" not in srcuri and "git://" not in srcuri: + return "Invalid" + return bb.fetch2.get_srcrev(d) + +# Override SRCPV to make sure it imports the fetcher first +SRCPV = "${@crate_get_srcrev(d)}" |