deno: avoid nix-prefetch error

nix-prefetch is failing with an error containing
'allow-unsafe-native-code-during-evaluation'.
This change avoids and handles this error so the update still used.

This isn't intended as a permanent fix but it works for now.
This commit is contained in:
06kellyjac 2020-08-21 23:08:15 +01:00
parent 3fbad3ec7a
commit 01c32e49a9

View File

@ -8,7 +8,20 @@ const run = async (command: string, args: string[]) => {
{ cmd: [command, ...args], stdout: "piped", stderr: "piped" },
);
if (!(await cmd.status()).success) {
throw await cmd.stderrOutput().then((b) => decode(b));
const error = await cmd.stderrOutput().then((b) => decode(b).trimEnd());
// Known error we can ignore
if (error.includes("'allow-unsafe-native-code-during-evaluation'")) {
// Extract the target sha256 out of the error
const target = " got: sha256:";
const match = error
.split("\n")
.find((l) => l.includes(target))
?.split(target)[1];
if (typeof match !== "undefined") {
return match;
}
}
throw new Error(error);
}
return cmd.output().then((b) => decode(b).trimEnd());
};