Skip to content

Commit

Permalink
Utilizando miniTools.readConfig() para leer varios .yaml's
Browse files Browse the repository at this point in the history
  • Loading branch information
diegoefe committed Oct 17, 2016
1 parent 6ab6a68 commit d749a82
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 26 deletions.
41 changes: 27 additions & 14 deletions bin/txt-to-sql-run.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,17 @@ cmdParams.exportDefaults = program.exportDefaults;
// numero de lineas a leer para analizar entrada
var bufferingThreeshold = 50;

function collectExistentFiles(files) {
var existentFiles = [];
return Promises.all(files.map(function(file) {
return fs.exists(file).then(function(exists) {
if(exists) { existentFiles.push(file); }
});
})).then(function() {
return existentFiles;
});
};

function readConfigData(configFile) {
return Promises.start(function() {
return fs.exists(configFile);
Expand Down Expand Up @@ -225,14 +236,15 @@ function doFast(params, inputBase) {
});
}

var workingDir = Path.resolve('.');
var defYamlName = 'txt-to-sql-defaults.yaml';
var globalBaseDir = Path.dirname(Path.parse(__filename).dir);
var defYaml = Path.resolve(globalBaseDir, 'lib', defYamlName);
var inputName = Path.basename(cmdParams.input, '.txt');
var params = {};

Promises.start(function() {
if(cmdParams.exportDefaults) {
var workingDir = Path.resolve('.');
var baseDir = Path.dirname(Path.parse(__filename).dir);
var defYamlName = 'txt-to-sql-defaults.yaml';
var defYaml = Path.resolve(baseDir, 'lib', defYamlName)
var outputDefYaml = Path.resolve(workingDir, defYamlName);
return fs.copy(defYaml, outputDefYaml).then(function() {
process.stdout.write("Written '"+outputDefYaml+"'\n");
Expand All @@ -244,17 +256,18 @@ Promises.start(function() {
return getOutputDir(cmdParams.input).then(function(outputDir) {
inputBase = Path.resolve(outputDir, inputName);
inputYaml = inputBase+'.yaml';
return readConfigData(inputYaml);
}).then(function(data) {
if(data.invalid) {
createInputYaml = true;
return readConfigData(inputBase+'.json');
}
return data;
var configFiles = [
defYaml,
Path.resolve(workingDir, defYamlName),
inputYaml
];
return collectExistentFiles(configFiles);
}).then(function(existentFiles) {
createInputYaml = existentFiles.indexOf(inputYaml) === -1;
return miniTools.readConfig(existentFiles);
}).then(function(data) {
if(! data.invalid) {
params = data;
} else {
params = data.opts;
if(! params.tableName) {
params.tableName = inputName;
}
return fs.readFile(cmdParams.input);
Expand Down
23 changes: 12 additions & 11 deletions lib/txt-to-sql-defaults.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
columnNamesFormat: lowercased_names
separator: false
includePrimaryKey: true
columnAlignedCommas: false
columnAlignedMaxWidth: 100
outputEngine: postgresql
verboseErrors: false
inputEncoding: false
outputEncoding: false
addDropTable: false
ignoreNullLines: false
opts:
columnNamesFormat: lowercased_names
separator: false
includePrimaryKey: true
columnAlignedCommas: false
columnAlignedMaxWidth: 100
outputEngine: postgresql
verboseErrors: false
inputEncoding: false
outputEncoding: false
addDropTable: false
ignoreNullLines: false
2 changes: 1 addition & 1 deletion tools/defyaml.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ var Path = require('path');
function createDefaultYaml() {
var defaultYaml = Path.resolve('./lib/txt-to-sql-defaults.yaml');
console.log("Generating '"+defaultYaml+"'...");
return fs.writeFile(defaultYaml, jsYaml.safeDump(txtToSql.defaultOpts), {encoding:'utf8'}).then(function() {
return fs.writeFile(defaultYaml, jsYaml.safeDump({opts:txtToSql.defaultOpts}), {encoding:'utf8'}).then(function() {
console.log("listo.")
}).catch(function(err) {
console.log("Error", err, err.stack);
Expand Down

0 comments on commit d749a82

Please sign in to comment.