Copy of new files from 1599

Modified folder structure - added swe folder

Change-Id: I2b48a1635ad0a6406398aa9f1021a1f43baebeef
diff --git a/tools/generate_about.sh b/tools/generate_about.sh
new file mode 100755
index 0000000..c44072a
--- /dev/null
+++ b/tools/generate_about.sh
@@ -0,0 +1,195 @@
+#!/bin/bash
+#
+# Copyright (c) 2013, The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#     * Redistributions of source code must retain the above copyright
+#      notice, this list of conditions and the following disclaimer.
+#    * Redistributions in binary form must reproduce the above
+#      copyright notice, this list of conditions and the following
+#      disclaimer in the documentation and/or other materials provided
+#      with the distribution.
+#    * Neither the name of The Linux Foundation nor the names of its
+#      contributors may be used to endorse or promote products derived
+#      from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Construct the XML entity for the &about; entity in
+#  res/values/about.xml.
+#
+# Usage:
+#  generate_about.sh [OPTIONS]
+#
+# Generates SWE Android Browser's About box XML resource and
+#   emits manifest version name/code values
+#
+# Options:
+#  --name : emit suitable manifest version name
+#  --code : emit suitable manifest version code
+#  --about : generate res/values/about.xml
+#
+#
+me=${0##*/}
+mydir=${0%/*}
+
+# input/output files
+VERSIONFILE=${mydir}/../VERSION
+ABOUTFILE=${mydir}/../res/values/about.xml
+
+# default
+NAME=0
+CODE=0
+ABOUT=0
+QUIET=0
+
+# poor man's getopt()
+[[ " ${*} " =~ " --name " ]] && NAME=1
+[[ " ${*} " =~ " --code " ]] && CODE=1
+[[ " ${*} " =~ " --quiet " ]] && QUIET=1
+[[ " ${*} " =~ " --about " ]] && ABOUT=1
+
+function warning()
+{
+    (( ${QUIET} )) || echo "Warning: ${me}: $@" >&2
+}
+
+function error()
+{
+    ret=$1
+    shift
+    echo "Error: ${me}: $@" >&2
+    exit ${retval}
+}
+
+
+BASEVERSION=$(cat ${VERSIONFILE}) || error 1 "couldn't read \"${VERSIONFILE}\""
+BASEVERSION=( ${BASEVERSION//./ } )
+MAJOR=${BASEVERSION[0]}
+MINOR=${BASEVERSION[1]}
+BRANCH=unknown
+BUILDID=unknown
+VERSION=${MAJOR}.${MINOR}
+
+# defaults
+HASH=unknown
+
+DATE=$(date) || warning "unable to get date"
+
+# collect information about branch, version, etc. from CHROME_SRC
+while [[ -d "${CHROME_SRC}" ]]
+do
+    pushd "${CHROME_SRC}" >/dev/null || error 1 "can't pushd ${CHROME_SRC}.."
+
+    # this had better work..
+    if ! HASH=$(git rev-parse --short HEAD)
+    then
+        HASH=unknown
+        warning "${CHROME_SRC} apparently not under git?"
+        break
+    fi
+
+    # collect branch and clean it up
+    BRANCH=$(git branch | awk '/^\*/')
+    BRANCH=${BRANCH#\* }
+
+    # try to get the best form of the branch, to
+    # catch detached HEADs, etc.
+    while read
+    do
+        REPLY=${REPLY// /}
+        [[ ${REPLY:0:1} == "(" ]] && continue
+        REPLY=${REPLY%->*}
+        git log -1 --oneline ${REPLY} | grep ${HASH} >/dev/null 2>/dev/null && BRANCH=${REPLY} && break;
+    done < <(git branch -a | grep -v ^\*)
+
+    if [[ ${BRANCH//(/} == ${BRANCH} ]]
+    then
+        # trim branch to a num, or a smaller name
+        BRANCH=${BRANCH##*/}
+    fi
+
+    # tack on branch
+    VERSION=${VERSION}.${BRANCH}
+
+    # construct a version, start with a default
+    MERGE_BASE=$(git merge-base remotes/origin/master "${HASH}") || warning "can't find a merge-base with master for hash \"$HASH\""
+
+    # requires grafted tree and numeric branch name
+    if [[ -n ${MERGE_BASE} ]]
+    then
+        BUILDID=$(git log --oneline ${MERGE_BASE}.. | wc -l)
+        VERSION=${VERSION}.${BUILDID}
+    else
+        warning "using version ${VERSION}.. merge-base:\"${MERGE_BASE}\" branch: \"${BRANCH}\""
+    fi
+
+    if (( ${ABOUT} ))
+    then
+        # collect diffs (just in case.  this will normally be NULL)
+        DIFFS=$(gclient recurse git diff)
+        DIFFS=${DIFFS//&/&amp;}
+        DIFFS=${DIFFS//</&lt;}
+        DIFFS=${DIFFS//$'\x5c'/$'\x5c'$'\x5c'} # \ -> \\
+        DIFFS=${DIFFS//$'\x27'/$'\x5c'$'\x27'} # ' -> \'
+        DIFFS=${DIFFS//$'\n'/$'\n'\\n}         # newline to newline\n
+        if [[ -n ${DIFFS} ]]
+        then
+            DIFFS="Diffs:\n<tt><font size=\"4\">${DIFFS}</font></tt>"
+            warning "including diffs in about box" >&2
+        fi
+    fi
+    popd >/dev/null || error 1 "popd from $CHROME_SRC failed?"
+    break
+done
+
+if (( ${ABOUT} ))
+then
+   # add a support link, if configured
+    if [[ -n ${SWE_APK_SUPPORT} ]]
+    then
+        CONTACT="Please help us make your experience better by contacting the
+team at <a href=\"mailto:${SWE_APK_SUPPORT}\">${SWE_APK_SUPPORT}</a>\n"
+    fi
+
+    printf %s "<?xml version=\"1.0\" encoding=\"utf-8\"?>
+<resources xmlns:xliff=\"urn:oasis:names:tc:xliff:document:1.2\">
+   <!-- Menu item to display browser information -->
+   <string name=\"about\">About</string>
+   <!-- Text to display in about dialog -->
+   <string name=\"about_text\" formatted=\"false\">
+${CONTACT}
+Version: ${VERSION}\n
+Built: ${DATE}\n
+Host: ${HOSTNAME}\n
+User: ${USER}\n
+Hash: ${HASH} (${BRANCH})\n
+${DIFFS}
+</string>
+</resources>
+" > "${ABOUTFILE}" || error 1 "could not write to ${ABOUTFILE}"
+fi
+
+(( ${NAME} )) && echo "${VERSION} (${HASH})"
+
+# decimal-ify for printf
+[[ -n ${MAJOR//[0-9]/} ]] && MAJOR=0
+[[ -n ${MINOR//[0-9]/} ]] && MINOR=0
+[[ -n ${BRANCH//[0-9]/} ]] && BRANCH=0
+[[ -n ${BUILDID//[0-9]/} ]] && BUILDID=0
+
+(( ${CODE} )) && printf "%d%02d%06d%05d\n" $((${MAJOR})) $((${MINOR})) $((${BRANCH})) $((${BUILDID}))
+
+exit 0