From 270051119a21ae5f73aa69b16ce2fb53cae534d3 Mon Sep 17 00:00:00 2001 From: Nan Zhang Date: Fri, 12 May 2017 14:02:13 -0700 Subject: [PATCH] Fix the issue "\n" didn't get interpreted properly. Added params to WriteFile rule that allow users to turn on the specific 'echo' options, such as "enable the interpretation of backslash escapes". Bug: b/38261000 Test: tested with real data files. Change-Id: I5145056b5c2522a3a72b9436055ec95d2fbd94c0 --- android/defs.go | 5 ++++- python/builder.go | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/android/defs.go b/android/defs.go index 6f4631625..a7ba219a3 100644 --- a/android/defs.go +++ b/android/defs.go @@ -80,9 +80,12 @@ var ( Description: "concatenate licenses $out", }) + // ubuntu 14.04 offcially use dash for /bin/sh, and its builtin echo command + // doesn't support -e option. Therefore we force to use /bin/bash when writing out + // content to file. WriteFile = pctx.AndroidStaticRule("WriteFile", blueprint.RuleParams{ - Command: "echo '$content' > $out", + Command: "/bin/bash -c 'echo -e $$0 > $out' '$content'", Description: "writing file $out", }, "content") diff --git a/python/builder.go b/python/builder.go index 541d2bf02..b823fcb9d 100644 --- a/python/builder.go +++ b/python/builder.go @@ -82,7 +82,7 @@ func registerBuildActionForModuleFileList(ctx android.ModuleContext, Output: fileList, Implicits: files, Args: map[string]string{ - "content": strings.Join(content, "\n"), + "content": strings.Join(content, `\n`), }, })