#!/usr/bin/env node
const fs = require('fs');
const { program } = require('commander');
const path = require('path');
program
.version('1.0.0')
.description('Loads text files for an experiment.')
.option('-i, --input <dir>', 'Input directory containing text files', './data')
.option('-o, --output <dir>', 'Output directory to store loaded data', './loaded_data')
.parse(process.argv);
const options = program.opts();
const inputDir = options.input;
const outputDir = options.output;
async function loadTextFiles(inputDir, outputDir) {
try {
// Ensure output directory exists
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir, { recursive: true });
}
const files = fs.readdirSync(inputDir);
for (const file of files) {
const filePath = path.join(inputDir, file);
const stat = fs.statSync(filePath);
if (stat.isFile() && file.endsWith('.txt')) {
try {
const content = fs.readFileSync(filePath, 'utf8');
const fileName = path.basename(file, '.txt'); //remove extension
const outputFilePath = path.join(outputDir, `${fileName}.json`); //save as json
fs.writeFileSync(outputFilePath, JSON.stringify(content), 'utf8');
console.log(`Loaded ${file} and saved to ${outputFilePath}`);
} catch (err) {
console.error(`Error processing file ${file}:`, err);
}
}
}
} catch (err) {
console.error('Error reading input directory:', err);
}
}
loadTextFiles(inputDir, outputDir);
Add your comment