blob: afb61f61c130e8071db5d20f5abb87ee8261bda1 [file] [log] [blame]
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# $Header: $
# @ECLASS: appid.eclass
# @MAINTAINER:
# ChromiumOS Build Team
# @BUGREPORTS:
# Please report bugs via http://crbug.com/new (with label Build)
# @VCSURL: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/eclass/@ECLASS@
# @BLURB: Eclass for setting up the omaha appid field in /etc/lsb-release
# @FUNCTION: doappid
# @USAGE: <appid>
# @DESCRIPTION:
# Initializes /etc/lsb-release with the appid. Note that appid is really
# just a UUID in the canonical {8-4-4-4-12} format (all uppercase). e.g.
# {01234567-89AB-CDEF-0123-456789ABCDEF}
doappid() {
[[ $# -eq 1 && -n $1 ]] || die "Usage: ${FUNCNAME} <appid>"
local appid=$1
# Validate the UUID is formatted correctly. Except for mario --
# it was created before we had strict rules, and so it violates :(.
if [[ ${appid} != '{87efface-864d-49a5-9bb3-4b050a7c227a}' ]] ; then
local uuid_regex='[{][0-9A-F]{8}-([0-9A-F]{4}-){3}[0-9A-F]{12}[}]'
local filtered_appid=$(echo "${appid}" | LC_ALL=C sed -r "s:${uuid_regex}::")
if [[ -n ${filtered_appid} ]] ; then
eerror "Invalid appid: ${appid} -> ${filtered_appid}"
eerror " - must start with '{' and end with '}'"
eerror " - must be all upper case"
eerror " - be a valid UUID (8-4-4-4-12 hex digits)"
die "invalid appid: ${appid}"
fi
fi
dodir /etc
local lsb="${D}/etc/lsb-release"
local canary_appid="{90F229CE-83E2-4FAF-8479-E368A34938B1}"
[[ -e ${lsb} ]] && die "${lsb} already exists!"
cat <<-EOF > "${lsb}" || die "creating ${lsb} failed!"
CHROMEOS_RELEASE_APPID=${appid}
CHROMEOS_BOARD_APPID=${appid}
CHROMEOS_CANARY_APPID=${canary_appid}
EOF
}