plist2
Version:
Converts between .tmLanguage(.plist), .json, .cson and .yaml formats
105 lines (102 loc) • 3.05 kB
JavaScript
/* eslint-disable */
/*
dester builds:
cli.ts
*/
;
var fs = require('fs');
var path = require('path');
var __ = require('..');
function _interopDefaultLegacy(e) {
return e && typeof e === 'object' && 'default' in e ? e : {
'default': e
};
}
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
/* filename: cli.ts
timestamp: 2024-12-13T15:18:03.721Z */
var regex = /^\.((?:j|c)son|ya?ml).*/i;
var getExt = v => {
var ext = path__default["default"].extname(v) || '.' + path__default["default"].basename(v);
var file = (ext.match(regex) || ['', 'plist'])[1].toLowerCase();
// console.log('ext: ' + ext, file)
return file === 'yml' ? 'yaml' : file;
};
var input = process.argv[2] || '';
var output = process.argv[3] || '';
if (!input) console.error('ERROR: Need to specify the "input" file');else if (!output) console.error('ERROR: Need to specify the "output" file or ext');else {
input = path__default["default"].resolve(input);
output = path__default["default"].resolve(output);
var bn = path__default["default"].basename(output);
if (!path__default["default"].extname(output) || !bn) output = input + (bn[0] === '.' ? '' : '.') + bn;
// console.log(input)
// console.log(output)
var inputExt = getExt(input);
var outputExt = getExt(output);
// console.log(inputExt)
// console.log(outputExt)
var parser;
switch (inputExt + '2' + outputExt) {
case 'cson2json':
parser = __.cson2json;
break;
case 'cson2plist':
parser = __.cson2plist;
break;
case 'cson2yaml':
parser = __.cson2yaml;
break;
case 'cson2cson':
parser = source => __.js2cson(__.cson2js(source));
break;
case 'json2cson':
parser = __.json2cson;
break;
case 'json2plist':
parser = __.json2plist;
break;
case 'json2yaml':
parser = __.json2yaml;
break;
case 'json2json':
parser = source => __.js2json(__.json2js(source));
break;
case 'plist2cson':
parser = __.plist2cson;
break;
case 'plist2json':
parser = __.plist2json;
break;
case 'plist2yaml':
parser = __.plist2yaml;
break;
case 'plist2plist':
parser = source => __.js2plist(__.plist2js(source));
break;
case 'yaml2cson':
parser = __.yaml2cson;
break;
case 'yaml2json':
parser = __.yaml2json;
break;
case 'yaml2plist':
parser = __.yaml2plist;
break;
case 'yaml2yaml':
parser = source => __.js2yaml(__.yaml2js(source));
break;
default:
throw new Error();
}
if (!parser) console.error('ERROR: "' + inputExt + '" and "' + outputExt + '" - not work');else {
try {
fs__default["default"].mkdirSync(path__default["default"].dirname(output), {
recursive: true
});
fs__default["default"].writeFileSync(output, parser(fs__default["default"].readFileSync(input, 'utf8')));
} catch (e) {
console.error(e);
}
}
}