Files
ts-scripts/single-scripts/random.ts
2025-09-19 00:07:57 +08:00

34 lines
872 B
TypeScript
Executable File

#!/usr/bin/env runts -- --allow-read
import { parseArgs } from "jsr:@std/cli/parse-args";
const flags = parseArgs(Deno.args, {
boolean: ["help", "secure-random"],
string: ["length"],
});
if (flags.help) {
console.log("random.ts [--secure-random] [--length <length>]");
Deno.exit(0);
}
const len = parseInt(flags.length || "12", 10);
const randDevice = flags["secure-random"]? "/dev/random": "/dev/urandom";
const buffer = new Uint8Array(len);
const file = await Deno.open(randDevice, { read: true });
try {
const nread = await file.read(buffer);
if (nread == null) {
throw `Read from ${randDevice} failed`;
}
} finally {
file.close();
}
Deno.stdout.write(buffer);
// @SCRIPT-SIGNATURE-V1: yk-r1.ES256.20250919T000646+08:00.MEYCIQC4rLURXnLhxeA870Wv
// O9OFCHPUcepoqOMgVxT1sDgV7gIhAM5SoaS2EWjqDMngyPTufuwaqv4Gza8CXzddrKq68DTD