package com.hubspot.singularity.executor.handlebars; import java.io.IOException; import com.github.jknack.handlebars.Helper; import com.github.jknack.handlebars.Options; public class EscapeNewLinesAndQuotesHelper implements Helper<Object> { public static final String NAME = "escapeNewLinesAndQuotes"; @Override public CharSequence apply(Object context, Options options) throws IOException { if (context == null) { return "\"\""; } final StringBuilder sb = new StringBuilder(); sb.append('"'); for (char c : context.toString().toCharArray()) { if (c == '\n') { sb.append('\\'); sb.append('n'); } else if (c == '"') { sb.append('\\'); sb.append('"'); } else { sb.append(c); } } sb.append('"'); return sb.toString(); } }