enh: add csv-related parameters

This commit is contained in:
Yaming Pei 2025-02-20 18:02:04 +08:00
parent 6f0bdb882c
commit 4fe7ed9a75
2 changed files with 33 additions and 17 deletions

View File

@ -780,7 +780,11 @@ typedef struct SArguments_S {
bool mistMode; bool mistMode;
bool escape_character; bool escape_character;
bool pre_load_tb_meta; bool pre_load_tb_meta;
char csvPath[MAX_FILE_NAME_LEN];
char* csv_output_dir;
char* csv_file_prefix;
char* csv_ts_format;
char* csv_ts_interval;
bool bind_vgroup; bool bind_vgroup;
} SArguments; } SArguments;

View File

@ -1586,25 +1586,37 @@ static int getMetaFromCommonJsonFile(tools_cJSON *json) {
} }
} }
g_arguments->csvPath[0] = 0; // csv output dir
tools_cJSON *csv = tools_cJSON_GetObjectItem(json, "csvPath"); tools_cJSON* csv_od = tools_cJSON_GetObjectItem(json, "csv_output_dir");
if (csv && (csv->type == tools_cJSON_String) if (csv_od && csv_od->type == tools_cJSON_String && csv_od->valuestring != NULL) {
&& (csv->valuestring != NULL)) { g_arguments->csv_output_dir = csv_od->valuestring;
tstrncpy(g_arguments->csvPath, csv->valuestring, MAX_FILE_NAME_LEN); } else {
g_arguments->csv_output_dir = "./output/";
}
(void)mkdir(g_arguments->csv_output_dir, 0775);
// csv file prefix
tools_cJSON* csv_fp = tools_cJSON_GetObjectItem(json, "csv_file_prefix");
if (csv_fp && csv_fp->type == tools_cJSON_String && csv_fp->valuestring != NULL) {
g_arguments->csv_file_prefix = csv_fp->valuestring;
} else {
g_arguments->csv_file_prefix = "data";
} }
size_t len = strlen(g_arguments->csvPath); // csv timestamp format
tools_cJSON* csv_tf = tools_cJSON_GetObjectItem(json, "csv_ts_format");
if(len == 0) { if (csv_tf && csv_tf->type == tools_cJSON_String && csv_tf->valuestring != NULL) {
// set default with current path g_arguments->csv_ts_format = csv_tf->valuestring;
strcpy(g_arguments->csvPath, "./output/");
mkdir(g_arguments->csvPath, 0775);
} else { } else {
// append end g_arguments->csv_ts_format = "YYYYMMDDHHmmSS";
if (g_arguments->csvPath[len-1] != '/' ) { }
strcat(g_arguments->csvPath, "/");
} // csv timestamp format
mkdir(g_arguments->csvPath, 0775); tools_cJSON* csv_ti = tools_cJSON_GetObjectItem(json, "csv_ts_interval");
if (csv_ti && csv_ti->type == tools_cJSON_String && csv_ti->valuestring != NULL) {
g_arguments->csv_ts_interval = csv_ti->valuestring;
} else {
g_arguments->csv_ts_interval = "1d";
} }
code = 0; code = 0;