B. simonnet | acc11eb | 2014-02-18 16:55:38 -0800 | [diff] [blame] | 1 | # Copyright (c) 2014 The Chromium OS Authors. All rights reserved. |
| 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
Andrey Ulanov | 75d14a0 | 2016-04-27 15:39:07 -0700 | [diff] [blame] | 4 | |
| 5 | inherit osreleased |
B. simonnet | acc11eb | 2014-02-18 16:55:38 -0800 | [diff] [blame] | 6 | |
| 7 | # @ECLASS: crashid.eclass |
| 8 | # @MAINTAINER: |
| 9 | # Chromium OS crash reporter maintainers; see src/platform/crash-reporter/OWNERS |
| 10 | # @BUGREPORTS: |
| 11 | # Please report bugs via http://crbug.com/new (with label Build) |
| 12 | # @VCSURL: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/eclass/@ECLASS@ |
| 13 | # @BLURB: Eclass for setting up GOOGLE_CRASH_ID and GOOGLE_CRASH_VERSION_ID in /etc/os-release |
| 14 | # |
| 15 | # @FUNCTION: docrashid |
Bertrand SIMONNET | c404bbb | 2015-02-18 17:43:09 -0800 | [diff] [blame] | 16 | # @USAGE: <crash_id> [<crash_version_id>] |
B. simonnet | acc11eb | 2014-02-18 16:55:38 -0800 | [diff] [blame] | 17 | # @DESCRIPTION: |
Bertrand SIMONNET | c404bbb | 2015-02-18 17:43:09 -0800 | [diff] [blame] | 18 | # Initializes /etc/os-release with the crash id and crash version (optional). |
| 19 | # Both the crash id and version are restricted to [a-zA-Z.-_]. |
B. simonnet | acc11eb | 2014-02-18 16:55:38 -0800 | [diff] [blame] | 20 | # @CODE |
| 21 | # docrashid chromeos first_version |
| 22 | # @CODE |
| 23 | # will add |
| 24 | # @CODE |
| 25 | # GOOGLE_CRASH_ID=chromeos |
| 26 | # GOOGLE_CRASH_VERSION_ID=first_version |
| 27 | # @CODE |
| 28 | # to /etc/os-release. |
| 29 | docrashid() { |
Bertrand SIMONNET | c404bbb | 2015-02-18 17:43:09 -0800 | [diff] [blame] | 30 | [[ $# -lt 3 && $# -gt 0 && -n $1 ]] || die "Usage: ${FUNCNAME} <crash_id> [<crash_version_id>]" |
B. simonnet | acc11eb | 2014-02-18 16:55:38 -0800 | [diff] [blame] | 31 | local validregex="[-._a-zA-Z]+" |
Bertrand SIMONNET | 9b71570 | 2014-10-06 12:10:42 -0700 | [diff] [blame] | 32 | local crash_id="$1" |
| 33 | local crash_version_id="$2" |
| 34 | local filtered_id=$(echo "${crash_id}" | \ |
| 35 | LC_ALL=C sed -r "s:${validregex}::") |
| 36 | local filtered_version_id=$(echo "${crash_version_id}" | \ |
| 37 | LC_ALL=C sed -r "s:${validregex}::") |
| 38 | if [[ -n ${filtered_id} || -n ${filtered_version_id} ]]; then |
B. simonnet | acc11eb | 2014-02-18 16:55:38 -0800 | [diff] [blame] | 39 | die "Invalid input. Must satisfy: ${validregex}" |
| 40 | fi |
B. simonnet | acc11eb | 2014-02-18 16:55:38 -0800 | [diff] [blame] | 41 | |
Andrey Ulanov | 75d14a0 | 2016-04-27 15:39:07 -0700 | [diff] [blame] | 42 | do_osrelease_field GOOGLE_CRASH_ID "${crash_id}" |
Bertrand SIMONNET | c404bbb | 2015-02-18 17:43:09 -0800 | [diff] [blame] | 43 | if [[ -n "${crash_version_id}" ]]; then |
Andrey Ulanov | 75d14a0 | 2016-04-27 15:39:07 -0700 | [diff] [blame] | 44 | do_osrelease_field GOOGLE_CRASH_VERSION_ID "${crash_version_id}" |
Bertrand SIMONNET | c404bbb | 2015-02-18 17:43:09 -0800 | [diff] [blame] | 45 | fi |
B. simonnet | acc11eb | 2014-02-18 16:55:38 -0800 | [diff] [blame] | 46 | } |