On Thu, Mar 30, 2023 at 4:45 PM <frederic.martins...@gmail.com> wrote: > > From: Frederic Martinsons <frederic.martins...@gmail.com> > > There is no need to do such things, Cargo.lock file > has to be at the root of CARGO_LOCK_SRC_DIR. > This avoid finding other possible Cargo.lock that > would be in subdir (for example if a patch is applied > on the recipe, we can have .pc subdir in S and a Cargo.lock > can be there) > > Signed-off-by: Frederic Martinsons <frederic.martins...@gmail.com> > --- > .../cargo-update-recipe-crates.bbclass | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/meta/classes-recipe/cargo-update-recipe-crates.bbclass > b/meta/classes-recipe/cargo-update-recipe-crates.bbclass > index daa363b0dd..549cfe627e 100644 > --- a/meta/classes-recipe/cargo-update-recipe-crates.bbclass > +++ b/meta/classes-recipe/cargo-update-recipe-crates.bbclass > @@ -68,10 +68,14 @@ def get_crates(f): > import os > crates = "# Autogenerated with 'bitbake -c update_crates ${PN}'\n\n" > found = False > -for root, dirs, files in os.walk('${CARGO_LOCK_SRC_DIR}'): > - for file in files: > - if file == 'Cargo.lock': > - crates += get_crates(os.path.join(root, file)) > +for file in os.listdir('${CARGO_LOCK_SRC_DIR}'): > + if file == 'Cargo.lock': > + try: > + cargo_lock_path = os.path.join('${CARGO_LOCK_SRC_DIR}', file) > + crates += get_crates(cargo_lock_path) > + except Exception as e: > + raise ValueError("Cannot parse '%s'" % cargo_lock_path) from e > + else: > found = True > if not found: > raise ValueError("Unable to find Cargo.lock in ${CARGO_LOCK_SRC_DIR}")
Isn't this just a long-winded version of something like this (completely untested): diff --git a/meta/classes-recipe/cargo-update-recipe-crates.bbclass b/meta/classes-recipe/cargo-update-recipe-crates.bbclass index daa363b0dd65..22ddcfa5c1e3 100644 --- a/meta/classes-recipe/cargo-update-recipe-crates.bbclass +++ b/meta/classes-recipe/cargo-update-recipe-crates.bbclass @@ -67,14 +67,7 @@ def get_crates(f): import os crates = "# Autogenerated with 'bitbake -c update_crates ${PN}'\n\n" -found = False -for root, dirs, files in os.walk('${CARGO_LOCK_SRC_DIR}'): - for file in files: - if file == 'Cargo.lock': - crates += get_crates(os.path.join(root, file)) - found = True -if not found: - raise ValueError("Unable to find Cargo.lock in ${CARGO_LOCK_SRC_DIR}") +crates += get_crates(os.path.join("${CARGO_LOCK_SRC_DIR}", "Cargo.lock")) open("${TARGET_FILE}", 'w').write(crates) EOF -- Alex Kiernan
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#179344): https://lists.openembedded.org/g/openembedded-core/message/179344 Mute This Topic: https://lists.openembedded.org/mt/97953740/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-