1pux-to-csv
Version:
Convert 1Password .1pux files to .csv
33 lines (32 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = require("fs");
const path_1 = require("path");
const commander_1 = require("commander");
const parser_1 = require("./parser");
const program = new commander_1.Command();
const convert = async (inputFile, options) => {
const fileContents = (0, fs_1.readFileSync)(inputFile, { encoding: null });
const parsedExport = await (0, parser_1.parse1PuxFile)(fileContents);
const csvString = await (0, parser_1.convert1PuxDataToCSV)(parsedExport.data);
let { outputFile } = options;
// Generate output file name, if none was given
if (!outputFile) {
const inputFileExtension = (0, path_1.extname)(inputFile);
if (!inputFileExtension) {
outputFile = `${inputFile}.csv`;
}
else {
outputFile = inputFile.replace(new RegExp(`\\${inputFileExtension}$`, 'gi'), '.csv');
}
}
console.log(`Writing CSV file: "${outputFile}"...`);
(0, fs_1.writeFileSync)(outputFile, csvString, { encoding: 'utf-8' });
};
program
.command('convert <inputFile>', { isDefault: true })
.option('-o, --output-file <outputFile>', 'CSV output file path')
.description('Converts 1pux file to CSV')
.action(convert);
program.parse(process.argv);