From d60d4b42f5984d0aeade8cebd3c5b8932e47e0af Mon Sep 17 00:00:00 2001 From: DM1-1 Date: Sun, 28 Apr 2024 10:27:00 +0800 Subject: [PATCH] fix(cli): fix options handler of file write --- cli/src/index.ts | 4 ++-- cli/src/lib/sub.ts | 4 ++-- cli/src/utils/parse.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cli/src/index.ts b/cli/src/index.ts index 38c37d219..9f3e85a24 100755 --- a/cli/src/index.ts +++ b/cli/src/index.ts @@ -311,8 +311,8 @@ export class Commander { 'load the parameters from the local configuration file, which supports json and yaml format, default path is ./mqttx-cli-config.json', ) // https://github.com/tj/commander.js/blob/master/examples/options-conflicts.js - .addOption(new Option('--file-write ', 'append received messages to a specified file').default(parseFileWrite).conflicts('fileSave')) - .addOption(new Option('--file-save ', 'save each received message to a new file').default(parseFileSave).conflicts('fileWrite')) + .addOption(new Option('--file-write ', 'append received messages to a specified file').argParser(parseFileWrite).conflicts('fileSave')) + .addOption(new Option('--file-save ', 'save each received message to a new file').argParser(parseFileSave).conflicts('fileWrite')) .option( '-Pp, --protobuf-path ', 'the path to the .proto file that defines the message format for Protocol Buffers (protobuf)', diff --git a/cli/src/lib/sub.ts b/cli/src/lib/sub.ts index cf6a53850..f566be435 100644 --- a/cli/src/lib/sub.ts +++ b/cli/src/lib/sub.ts @@ -4,7 +4,7 @@ import { parseConnectOptions, parseSubscribeOptions, checkTopicExists } from '.. import delay from '../utils/delay' import convertPayload from '../utils/convertPayload' import { saveConfig, loadConfig } from '../utils/config' -import { writeFile, appendFile, getPathExtname } from '../utils/fileUtils' +import { writeFile, appendFile, getPathExtname, createNextNumberedFileName } from '../utils/fileUtils' import { deserializeBufferToProtobuf } from '../utils/protobuf' import isSupportedBinaryFormatForMQTT from '../utils/binaryFormats' import * as Debug from 'debug' @@ -114,7 +114,7 @@ const sub = (options: SubscribeOptions) => { const receivedMessage = processReceivedMessage(payload, protobufPath, protobufMessageName, format) - const savePath = fileSave ?? fileWrite + const savePath = fileSave ? createNextNumberedFileName(fileSave) : fileWrite if(savePath) { fileSave && writeFile(savePath, receivedMessage) fileWrite && appendFile(savePath, receivedMessage) diff --git a/cli/src/utils/parse.ts b/cli/src/utils/parse.ts index 92eaa87f0..21d7594a9 100644 --- a/cli/src/utils/parse.ts +++ b/cli/src/utils/parse.ts @@ -1,7 +1,7 @@ import * as fs from 'fs' import signale from '../utils/signale' import { getSpecialTypesOption } from '../utils/generator' -import { createNextNumberedFileName, readFile, processPath, getPathExtname } from '../utils/fileUtils' +import { readFile, processPath } from '../utils/fileUtils' import { IClientOptions, IClientPublishOptions, IClientSubscribeOptions } from 'mqtt' import { getLocalScenarioList, getScenarioFilePath } from './simulate' @@ -116,7 +116,7 @@ const parseFileRead = (value: string) => { } const parseFileSave = (value: string) => { - const filePath = createNextNumberedFileName(processPath(value)) + const filePath = processPath(value) if(!filePath) { signale.error('A valid file path is required when saving to file.') process.exit(1)