Skip to content

Instantly share code, notes, and snippets.

@dynajoe
Last active June 26, 2018 20:23
Show Gist options
  • Save dynajoe/99d9fbd52a557888eff0 to your computer and use it in GitHub Desktop.
Save dynajoe/99d9fbd52a557888eff0 to your computer and use it in GitHub Desktop.
pg_replace_prepared.js
#!/usr/bin/env node
process.stdin.setEncoding('utf8');
var data = '';
process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if (chunk !== null) {
data += chunk.toString();
}
});
process.stdin.on('end', function() {
data = data.replace(/\n\w+ \|/g, '\n')
var scriptIndex = data.indexOf('LOG: ');
var paramsIndex = data.indexOf('DETAIL: ')
var script = data.substring(scriptIndex, paramsIndex).replace(/LOG:[^:]+:/, '')
var params = data.substring(paramsIndex);
var matchedParams = params
.replace(/^DETAIL:\s+parameters:\s+/, '')
.split(/(\$\d+)\s+=/)
for (var i = 0; i < matchedParams.length; i++) {
var value = matchedParams[i];
if (value.indexOf('$') === 0) {
script = script.replace(new RegExp(value.replace('$', '\\$') + '\\b', 'g'), matchedParams[i+1].replace(/,\s*$/, '').trim());
i++;
}
}
process.stdout.write(script);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment