« get me outta code hell

http-music - Command-line music player + utils (not a server!)
about summary refs log tree commit diff
path: root/src/general-util.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/general-util.js')
-rw-r--r--src/general-util.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/general-util.js b/src/general-util.js
index b37f516..63f0312 100644
--- a/src/general-util.js
+++ b/src/general-util.js
@@ -313,3 +313,31 @@ module.exports.makePlaylistOptions = function() {
     }
   }
 }
+
+module.exports.processTemplateString = function(string, replacements) {
+  let outString = ''
+  let currentReplacement = null
+  for (let i = 0; i < string.length; i++) {
+    const char = string[i]
+
+    if (char === '%') {
+      if (currentReplacement === null) {
+        currentReplacement = ''
+      } else {
+        if (Object.keys(replacements).includes(currentReplacement)) {
+          outString += replacements[currentReplacement].toString()
+        } else {
+          outString += '%UnknownKey:' + currentReplacement + '%'
+        }
+        currentReplacement = null
+      }
+    } else {
+      if (currentReplacement === null) {
+        outString += char
+      } else {
+        currentReplacement += char
+      }
+    }
+  }
+  return outString
+}