feat: udpate deno libs
This commit is contained in:
@@ -377,6 +377,53 @@ export function encodeBase64Url(input: ArrayBufferLike): string {
|
||||
);
|
||||
}
|
||||
|
||||
interface GetKeyRingResult {
|
||||
service: string;
|
||||
user: string;
|
||||
password: string;
|
||||
}
|
||||
|
||||
export function getKeyRingPassword(
|
||||
service: string,
|
||||
user: string,
|
||||
): string | null {
|
||||
const command = new Deno.Command("keyring.rs", {
|
||||
args: ["-g", "--json", "-S", service, "-U", user],
|
||||
});
|
||||
const { code, stdout, stderr } = command.outputSync();
|
||||
const stdoutString = new TextDecoder().decode(stdout);
|
||||
const stderrString = new TextDecoder().decode(stderr);
|
||||
if (code != 0) {
|
||||
if (stderrString && stderrString.includes("Error: NoEntry")) {
|
||||
return null;
|
||||
}
|
||||
throw new Error(
|
||||
`keyring.rs -g failed, code: ${code}, stdout: ${stdoutString}, stderr: ${stderrString}`,
|
||||
);
|
||||
}
|
||||
const result = JSON.parse(stdoutString) as GetKeyRingResult;
|
||||
return result.password;
|
||||
}
|
||||
|
||||
export function setKeyRingPassword(
|
||||
service: string,
|
||||
user: string,
|
||||
password: string,
|
||||
): void {
|
||||
const command = new Deno.Command("keyring.rs", {
|
||||
args: ["-s", "-S", service, "-U", user, "-P", password],
|
||||
});
|
||||
const { code, stdout, stderr } = command.outputSync();
|
||||
const stdoutString = new TextDecoder().decode(stdout);
|
||||
const stderrString = new TextDecoder().decode(stderr);
|
||||
if (code != 0) {
|
||||
throw new Error(
|
||||
`keyring.rs -s failed, code: ${code}, stdout: ${stdoutString}, stderr: ${stderrString}`,
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Deno.test("isOn", () => {
|
||||
assertEquals(false, isOn(undefined));
|
||||
assertEquals(false, isOn(""));
|
||||
@@ -456,3 +503,11 @@ Deno.test("base64Url", () => {
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
Deno.test("test-key-ring-rs", () => {
|
||||
setKeyRingPassword("test-service", "test-user", "test-password");
|
||||
assertEquals(
|
||||
"test-password",
|
||||
getKeyRingPassword("test-service", "test-user"),
|
||||
);
|
||||
});
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
encodeBase64Url,
|
||||
hexStringToUint8Array,
|
||||
resolveFilename,
|
||||
} from "https://global.hatter.ink/script/get/@9/deno-commons-mod.ts";
|
||||
} from "https://global.hatter.ink/script/get/@10/deno-commons-mod.ts";
|
||||
import {getRandomValues} from "node:crypto";
|
||||
import {assertEquals} from "jsr:@std/assert";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user