es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo pasar una variable de Bash a una consulta “set” de Bazel.

Tengo el siguiente conjunto de archivos que quiero pasar a Bazel utilizando

res = $ (git diff --name-only ${COMMIT_HASH} ^! | grep '^ src /' | uniq | cut -d / -f2-)

echo $ res

servicios / service-a / README.md

servicios / service-a / main.go

...

bazel query --keepgoing 'set ($ {res})'

Pero simplemente intentarlo resulta en:

bazel query --keepgoing 'set (${res})'
ERROR: Omitiendo '$': no hay tal destino '//:$': el destino '$' no está declarado en el paquete '' definido por / Users / aoutadi / code / KeepTruckin / kt / src /BUILD.bazel
ERROR: Omitiendo '{res': no hay tal destino '//:{res': el destino '{res' no está declarado en el paquete '' definido por / Users / aoutadi / code / KeepTruckin / kt / src / BUILD.bazel
ERROR: Omitiendo '}': no hay tal destino '//:}': el destino '}' no está declarado en el paquete '' definido por / Users / aoutadi / code / KeepTruckin / kt / src /BUILD.bazel
ADVERTENCIA: se especificó --keep_going, ignorando errores. Los resultados pueden ser inexactos.
INFO: resultados vacíos

Sé que podría ser posible incrustar mi comando en la consulta de Bazel usando

bash
bazel query –keep_going ‘set ($(git diff –name-only ${COMMIT_HASH}^! | grep ‘^src/’ | uniq | cut -d/ -f2-))’

pero me gustaría evitar esto por claridad y en su lugar usar $ res.

¿Es esto posible?

Tags:  ,

Answer

  1. Avatar for davy.ai

    ¿Cómo hacerlo?

    Sí, esto es posible. Puede usar el comando eval para evaluar el contenido de $res antes de pasarlo a bazel query. El comando se vería así:

    bash
    eval bazel query --keep_going 'set($res)'

Comments are closed.