From 6d7bab5536fa834ba169115cc19a40dec0a70f78 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Tue, 16 Sep 2025 18:05:01 +0200 Subject: [PATCH] feat: use same config variables for CLI as BOSS itself + load .env into CLI --- src/cli/utils.ts | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/cli/utils.ts b/src/cli/utils.ts index a0d0e5d..3da42a1 100644 --- a/src/cli/utils.ts +++ b/src/cli/utils.ts @@ -1,26 +1,33 @@ import { BOSSDefinition } from '@pretendonetwork/grpc/boss/boss_service'; import { createChannel, createClient, Metadata } from 'nice-grpc'; +import dotenv from 'dotenv'; import type { BOSSClient } from '@pretendonetwork/grpc/boss/boss_service'; export type WiiUKeys = { aesKey: string; hmacKey: string }; export type CliContext = { grpc: BOSSClient; + npdiDomain: string; getWiiUKeys: () => WiiUKeys; }; export function getCliContext(): CliContext { - const grpcHost = process.env.PN_BOSS_CLI_GRPC_HOST ?? ''; - const grpcKey = process.env.PN_BOSS_CLI_GRPC_APIKEY ?? ''; + dotenv.config(); + const grpcAddress = process.env.PN_BOSS_CONFIG_GRPC_BOSS_SERVER_ADDRESS ?? ''; + const grpcPort = process.env.PN_BOSS_CONFIG_GRPC_BOSS_SERVER_PORT ?? ''; + const grpcKey = process.env.PN_BOSS_CONFIG_GRPC_BOSS_SERVER_API_KEY ?? ''; - if (!grpcHost) { - throw new Error('Missing env variable PN_BOSS_CLI_GRPC_HOST'); + if (!grpcAddress) { + throw new Error('Missing env variable PN_BOSS_CONFIG_GRPC_BOSS_SERVER_ADDRESS'); + } + if (!grpcPort) { + throw new Error('Missing env variable PN_BOSS_CONFIG_GRPC_BOSS_SERVER_PORT'); } if (!grpcKey) { - throw new Error('Missing env variable PN_BOSS_CLI_GRPC_APIKEY'); + throw new Error('Missing env variable PN_BOSS_CONFIG_GRPC_BOSS_SERVER_API_KEY'); } - const channel = createChannel(grpcHost); + const channel = createChannel(grpcAddress + ':' + grpcPort); const client: BOSSClient = createClient(BOSSDefinition, channel, { '*': { metadata: new Metadata({ @@ -31,15 +38,16 @@ export function getCliContext(): CliContext { return { grpc: client, + npdiDomain: (process.env.PN_BOSS_CONFIG_DOMAINS_NPDI ?? 'npdi.cdn.pretendo.cc').split(',')[0], getWiiUKeys(): WiiUKeys { - const aesKey = process.env.PN_BOSS_CLI_WIIU_AES_KEY ?? ''; - const hmacKey = process.env.PN_BOSS_CLI_WIIU_HMAC_KEY ?? ''; + const aesKey = process.env.PN_BOSS_CONFIG_BOSS_WIIU_AES_KEY ?? ''; + const hmacKey = process.env.PN_BOSS_CONFIG_BOSS_WIIU_HMAC_KEY ?? ''; if (!aesKey) { - throw new Error('Missing env variable PN_BOSS_CLI_WIIU_AES_KEY - needed for decryption'); + throw new Error('Missing env variable PN_BOSS_CONFIG_BOSS_WIIU_AES_KEY - needed for decryption'); } if (!hmacKey) { - throw new Error('Missing env variable PN_BOSS_CLI_WIIU_HMAC_KEY - needed for decryption'); + throw new Error('Missing env variable PN_BOSS_CONFIG_BOSS_WIIU_HMAC_KEY - needed for decryption'); } return { aesKey,