mirror of https://github.com/apache/jclouds.git
fix for bug where unclosed open braces in shell scripts (and other places where scriptbuilder Utils does its replacements) banjax parsing
This commit is contained in:
parent
65f3bd17a3
commit
eeae052890
|
@ -62,7 +62,9 @@ public class Utils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Pattern pattern = Pattern.compile("\\{(.+?)\\}");
|
/** matches any expression inside curly braces (where the expression does not including an open curly brace) */
|
||||||
|
private static final Pattern pattern = Pattern.compile("\\{([^\\{]+?)\\}");
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* replaces tokens that are expressed as <code>{token}</code>
|
* replaces tokens that are expressed as <code>{token}</code>
|
||||||
|
|
|
@ -23,6 +23,7 @@ import static org.testng.Assert.assertEquals;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
|
||||||
import org.jclouds.scriptbuilder.domain.OsFamily;
|
import org.jclouds.scriptbuilder.domain.OsFamily;
|
||||||
|
import org.jclouds.scriptbuilder.domain.ShellToken;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
@ -80,4 +81,9 @@ public class UtilsTest {
|
||||||
"set HOST=\r\nset PORT=\r\n");
|
"set HOST=\r\nset PORT=\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testSingleCurlyBraceDoesntBreakLfTokenReplacement() {
|
||||||
|
assertEquals(Utils.replaceTokens("{{lf}", ShellToken.tokenValueMap(OsFamily.UNIX)),
|
||||||
|
"{\n");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue