Older versions of "cst" want to read the CSF frm STDIN, while newer versions want to read the CSF from a file. Sadly, the "-i" option doesn't understand "-i -" to read from STDIN, so we give it "/dev/stdin" instead. Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> --- scripts/imx/imx-image.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/imx/imx-image.c b/scripts/imx/imx-image.c index 452a544bc3eb..17d504586967 100644 --- a/scripts/imx/imx-image.c +++ b/scripts/imx/imx-image.c @@ -558,7 +558,21 @@ static int hab_sign(struct config_data *data) } } - ret = asprintf(&command, "%s -o %s", cst, csffile); + /* + * Older versions of "cst" want to read the CSF frm STDIN, + * while newer versions want to read the CSF from a + * file. Sadly, the "-i" option doesn't understand "-i -" to + * read from STDIN, so we give it "/dev/stdin" instead. + */ + ret = asprintf(&command, + "if %s | grep 'Input CSF text filename'; then" + " %s -o %s -i /dev/stdin;" + "else" + " %s -o %s;" + "fi", + cst, + cst, csffile, + cst, csffile); if (ret < 0) return -ENOMEM; -- 2.18.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox