From cf092eea28b080b65854848be6548a2760af04cd Mon Sep 17 00:00:00 2001 From: Kevin Rocard Date: Fri, 22 Feb 2013 16:53:25 +0100 Subject: PFW: [xml generation] Change send command method BZ: 97960 The lightRoutingUpdate.sh script had bugs using adb shell commands. Push the generated script of board, then execute it remotly. Remove support for environement define pfw file and add support for multiple argument files. Change-Id: Ie43e1e2a4d3bc207a8704e7ca1a254dad74c9139 Signed-off-by: Kevin Rocard Reviewed-on: http://android.intel.com:8080/93371 Reviewed-by: cactus Reviewed-by: Wagner, David Reviewed-by: De Chivre, Renaud Tested-by: Dixon, CharlesX Reviewed-by: buildbot Tested-by: buildbot --- tools/xmlGenerator/lightRoutingUpdate.sh | 105 +++++++++++++++++-------------- 1 file changed, 57 insertions(+), 48 deletions(-) diff --git a/tools/xmlGenerator/lightRoutingUpdate.sh b/tools/xmlGenerator/lightRoutingUpdate.sh index 646bdf5..dd16362 100755 --- a/tools/xmlGenerator/lightRoutingUpdate.sh +++ b/tools/xmlGenerator/lightRoutingUpdate.sh @@ -28,26 +28,24 @@ set -eu -o pipefail adbShell="adb shell" -parameterCommandAccess="eval parameter" +parameterCommandAccess="eval remote-process localhost 5000" parameter="$adbShell $parameterCommandAccess" tmpfile="/tmp/pfw_commands" +target_tmpfile="/data/pfw_commands" adbShellForward () { + + echo 'echo $?; exit' >> "$1" + # Send commands - ( - echo 'PS1="# "' - echo 'set -xeu' - cat "$1" - echo 'echo $?' - echo 'exit' - )| - # adb shell can not handle a too fast input, create artificial delay :( - while read line; do echo "$line"; sleep 0.04; done | - $adbShell | - # keep only the -3line, the output of "echo $?" - tee /dev/stderr | tail -3 | sed '1{s/\r//;q}' | + adb push "$1" "$target_tmpfile" + $adbShell chmod 700 "$target_tmpfile" + + $adbShell "$target_tmpfile" | + # keep only the -2 line, the output of "echo $?" + tee /dev/stderr | tail -2 | sed '1{s/\r//;q}' | # stop if $? != 0 (as of set -e) xargs test 0 -eq 2> /dev/null @@ -65,77 +63,88 @@ function parameterExecute () return 0 } -# Clean tmp file -rm "$tmpfile" || true +function log () +{ + echo "$@" >&2 +} -if test $# -eq 0 -then - domainFile="$(realpath "$PFWtest_DomainFile")" -else - domainFile="$1" -fi +# Clean tmp file +echo > "${tmpfile}" ################# # Configure PFW # ################# -parameterExecute setTuningMode on -parameterExecute setAutoSync off +echo "setTuningMode on" >> "${tmpfile}" +echo "setAutoSync off" >> "${tmpfile}" -echo "Delete routing domains" +log "Delete routing domains" for domain in $(parameterExecute listDomains |grep -io '^Routing.[^ ]*') do - echo "Will delete domain $domain" - echo "deleteDomain $domain" >> "$tmpfile" + log "Will delete domain $domain" + echo "deleteDomain $domain" >> "${tmpfile}" done ######################### # Generate PFW commands # ######################### -echo "Generate domain commands from file $(realpath $domainFile)" -m4 "$domainFile" | $(dirname $0)/PFWScriptGenerator.py --pfw >> "$tmpfile" +log "Generate domain commands from file(s): $*" +m4 "$@" \ + | $(dirname $0)/PFWScriptGenerator.py --pfw >> "${tmpfile}" -sed -i -e':a' \ - -e '# look for line finishing wih \ +echo "setAutoSync off" >> "${tmpfile}" +echo "setTuningMode off" >> "${tmpfile}" + +sed -i -e':a + # look for line finishing with \ /\\$/{ # Delete the last char (\) s/\\$//; # Append the next line and delete the \n separator N; s/\n/ /; - # Jump back to the expression begining + # Jump back to the expression beginning ta; - };' \ - -e '/^$/d;# delete empty lines' \ - -e 's/^ *//;# delete leading space' \ - -e 's/ */ /g;# delete multiple spaces' \ - -e 's/^.*$/'"$parameterCommandAccess"' "\0"\;/;# Add a prefix ($parameterCommandAccess) on each line' "$tmpfile" + }; + # delete empty lines; + /^$/d + # delete leading space + s/^ *// + # delete multiple spaces + s/ */ /g; + # Prefix each line with "$parameterCommandAccess + '"s/^/$parameterCommandAccess /" \ + "${tmpfile}" -echo "Execute commands" -adbShellForward "$tmpfile" +echo "set -xeu" > "${tmpfile}2" +cat "${tmpfile}" >> "${tmpfile}2" +log "Execute commands" +adbShellForward "${tmpfile}2" -parameterExecute setAutoSync off -parameterExecute setTuningMode off ##################### # Generate xml file # ##################### -# Output file is the input file with the xml extension -outputFile="$(echo "$domainFile" | sed 's#\.pfw$#.xml#')" +outputFilePath="domains.xml" -# Test if diferent from .pfw file (we do not whant to overwrite it) -if test "$outputFile" == "$domainFile" +if test $# -ne 0 then - outputFile="${outputFile}.xml" + # Output file is the input file with the xml extension + outputFilePath="${1%.*}.xml" + if test "$outputFilePath" == "$1" + then + # There is a conflict + outputFilePath="${1}.xml" + fi fi -echo "Output file: $outputFile" -$parameter getDomainsXML |sed 's/\r//' > "$outputFile" +log "Output file: $outputFilePath" +$parameter getDomainsXML |sed 's/\r//' > "$outputFilePath" -echo "The media serveur PFW domains have been change, please restart it to restore old domains" +log "The media server PFW domains have been change, please restart it to restore old domains" -- cgit v1.1