mirror of
https://github.com/certd/certd.git
synced 2026-05-15 04:27:31 +08:00
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
|
|
#!/usr/bin/env node
|
||
|
|
|
||
|
|
const { CertdClient } = require("./certd-client");
|
||
|
|
|
||
|
|
function requireEnv(name) {
|
||
|
|
const value = process.env[name];
|
||
|
|
if (!value) {
|
||
|
|
throw new Error(`Missing environment variable: ${name}`);
|
||
|
|
}
|
||
|
|
return value;
|
||
|
|
}
|
||
|
|
|
||
|
|
function boolEnv(name, defaultValue = false) {
|
||
|
|
const value = process.env[name];
|
||
|
|
if (value == null || value === "") {
|
||
|
|
return defaultValue;
|
||
|
|
}
|
||
|
|
return ["1", "true", "yes", "y"].includes(value.toLowerCase());
|
||
|
|
}
|
||
|
|
|
||
|
|
async function main() {
|
||
|
|
const client = new CertdClient(requireEnv("CERTD_KEY_ID"), requireEnv("CERTD_KEY_SECRET"), {
|
||
|
|
baseUrl: process.env.CERTD_BASE_URL,
|
||
|
|
encrypt: boolEnv("CERTD_ENCRYPT"),
|
||
|
|
});
|
||
|
|
|
||
|
|
const params = {
|
||
|
|
autoApply: boolEnv("CERTD_AUTO_APPLY"),
|
||
|
|
};
|
||
|
|
if (process.env.CERTD_CERT_ID) {
|
||
|
|
params.certId = Number(process.env.CERTD_CERT_ID);
|
||
|
|
if (!Number.isInteger(params.certId) || params.certId <= 0) {
|
||
|
|
throw new Error("CERTD_CERT_ID must be a positive integer");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (process.env.CERTD_DOMAINS) {
|
||
|
|
params.domains = process.env.CERTD_DOMAINS;
|
||
|
|
}
|
||
|
|
if (process.env.CERTD_FORMAT) {
|
||
|
|
params.format = process.env.CERTD_FORMAT;
|
||
|
|
}
|
||
|
|
if (!params.certId && !params.domains) {
|
||
|
|
throw new Error("Set CERTD_CERT_ID or CERTD_DOMAINS");
|
||
|
|
}
|
||
|
|
|
||
|
|
console.log(await client.getCert(params));
|
||
|
|
}
|
||
|
|
|
||
|
|
main().catch(error => {
|
||
|
|
console.error(error.message);
|
||
|
|
process.exit(1);
|
||
|
|
});
|