summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorBijan Amirzada <bijana@codeaurora.org>2014-02-26 17:08:10 -0800
committerBijan Amirzada <bijana@codeaurora.org>2014-03-04 14:03:36 -0800
commit69b30beb16df7916c7679ed69d70e3ebcdeb2085 (patch)
tree9b81f4a397f041deb5f1ef54e91b92666712b385 /tools
parent43555c9eb09b318276231eb31dab79f9f41f128c (diff)
downloadandroid_packages_apps_Gello-69b30beb16df7916c7679ed69d70e3ebcdeb2085.tar.gz
android_packages_apps_Gello-69b30beb16df7916c7679ed69d70e3ebcdeb2085.tar.bz2
android_packages_apps_Gello-69b30beb16df7916c7679ed69d70e3ebcdeb2085.zip
Copy of new files from 1599
Modified folder structure - added swe folder Change-Id: I2b48a1635ad0a6406398aa9f1021a1f43baebeef
Diffstat (limited to 'tools')
-rwxr-xr-xtools/generate_about.sh195
1 files changed, 195 insertions, 0 deletions
diff --git a/tools/generate_about.sh b/tools/generate_about.sh
new file mode 100755
index 00000000..c44072a0
--- /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