• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1exports.replaceDollarWithPercentPair = replaceDollarWithPercentPair
2exports.convertToSetCommand = convertToSetCommand
3exports.convertToSetCommands = convertToSetCommands
4
5function convertToSetCommand(key, value) {
6    var line = ""
7    key = key || ""
8    key = key.trim()
9    value = value || ""
10    value = value.trim()
11    if(key && value && value.length > 0) {
12        line = "@SET " + key + "=" + replaceDollarWithPercentPair(value) + "\r\n"
13    }
14    return line
15}
16
17function extractVariableValuePairs(declarations) {
18    var pairs = {}
19    declarations.map(function(declaration) {
20        var split = declaration.split("=")
21        pairs[split[0]]=split[1]
22    })
23    return pairs
24}
25
26function convertToSetCommands(variableString) {
27    var variableValuePairs = extractVariableValuePairs(variableString.split(" "))
28    var variableDeclarationsAsBatch = ""
29    Object.keys(variableValuePairs).forEach(function (key) {
30        variableDeclarationsAsBatch += convertToSetCommand(key, variableValuePairs[key])
31    })
32    return variableDeclarationsAsBatch
33}
34
35function replaceDollarWithPercentPair(value) {
36    var dollarExpressions = /\$\{?([^\$@#\?\- \t{}:]+)\}?/g
37    var result = ""
38    var startIndex = 0
39    do {
40        var match = dollarExpressions.exec(value)
41        if(match) {
42            var betweenMatches = value.substring(startIndex, match.index) || ""
43            result +=  betweenMatches + "%" + match[1] + "%"
44            startIndex = dollarExpressions.lastIndex
45        }
46    } while (dollarExpressions.lastIndex > 0)
47    result += value.substr(startIndex)
48    return result
49}
50
51
52