exports.replaceDollarWithPercentPair = replaceDollarWithPercentPair
|
exports.convertToSetCommand = convertToSetCommand
|
exports.convertToSetCommands = convertToSetCommands
|
|
function convertToSetCommand (key, value) {
|
var line = ''
|
key = key || ''
|
key = key.trim()
|
value = value || ''
|
value = value.trim()
|
if (key && value && value.length > 0) {
|
line = '@SET ' + key + '=' + replaceDollarWithPercentPair(value) + '\r\n'
|
}
|
return line
|
}
|
|
function extractVariableValuePairs (declarations) {
|
var pairs = {}
|
declarations.map(function (declaration) {
|
var split = declaration.split('=')
|
pairs[split[0]] = split[1]
|
})
|
return pairs
|
}
|
|
function convertToSetCommands (variableString) {
|
var variableValuePairs = extractVariableValuePairs(variableString.split(' '))
|
var variableDeclarationsAsBatch = ''
|
Object.keys(variableValuePairs).forEach(function (key) {
|
variableDeclarationsAsBatch += convertToSetCommand(key, variableValuePairs[key])
|
})
|
return variableDeclarationsAsBatch
|
}
|
|
function replaceDollarWithPercentPair (value) {
|
var dollarExpressions = /\$\{?([^$@#?\- \t{}:]+)\}?/g
|
var result = ''
|
var startIndex = 0
|
do {
|
var match = dollarExpressions.exec(value)
|
if (match) {
|
var betweenMatches = value.substring(startIndex, match.index) || ''
|
result += betweenMatches + '%' + match[1] + '%'
|
startIndex = dollarExpressions.lastIndex
|
}
|
} while (dollarExpressions.lastIndex > 0)
|
result += value.slice(startIndex)
|
return result
|
}
|