fix: outputs espace (#404)
* fix: outputs espace * refactor: move unescape to func * refactor: fix ci lint * refactor: unescape function
This commit is contained in:
@@ -38,7 +38,8 @@ func (rc *RunContext) commandHandler(ctx context.Context) common.LineHandler {
|
||||
if resumeCommand != "" && command != resumeCommand {
|
||||
return false
|
||||
}
|
||||
|
||||
arg = unescapeCommandData(arg)
|
||||
kvPairs = unescapeKvPairs(kvPairs)
|
||||
switch command {
|
||||
case "set-env":
|
||||
rc.setEnv(ctx, kvPairs, arg)
|
||||
@@ -95,3 +96,33 @@ func parseKeyValuePairs(kvPairs string, separator string) map[string]string {
|
||||
}
|
||||
return rtn
|
||||
}
|
||||
func unescapeCommandData(arg string) string {
|
||||
escapeMap := map[string]string{
|
||||
"%25": "%",
|
||||
"%0D": "\r",
|
||||
"%0A": "\n",
|
||||
}
|
||||
for k, v := range escapeMap {
|
||||
arg = strings.Replace(arg, k, v, -1)
|
||||
}
|
||||
return arg
|
||||
}
|
||||
func unescapeCommandProperty(arg string) string {
|
||||
escapeMap := map[string]string{
|
||||
"%25": "%",
|
||||
"%0D": "\r",
|
||||
"%0A": "\n",
|
||||
"%3A": ":",
|
||||
"%2C": ",",
|
||||
}
|
||||
for k, v := range escapeMap {
|
||||
arg = strings.Replace(arg, k, v, -1)
|
||||
}
|
||||
return arg
|
||||
}
|
||||
func unescapeKvPairs(kvPairs map[string]string) map[string]string {
|
||||
for k, v := range kvPairs {
|
||||
kvPairs[k] = unescapeCommandProperty(v)
|
||||
}
|
||||
return kvPairs
|
||||
}
|
||||
|
Reference in New Issue
Block a user