mirror of
https://github.com/flatcar/scripts.git
synced 2026-05-04 11:51:14 +02:00
Remove deprecated cros_mark_branch_as_stable
Change-Id: Id372faf1f7b0fa8c552d458ca225e8d4e3df2d04
This commit is contained in:
parent
e46aa776a1
commit
8b8c76b617
@ -1,115 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) 2010 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.
|
||||
|
||||
# Mark all ebuilds in chromiumos-overlay and chromeos-overlay as stable and
|
||||
# point them at the current version we have checked out.
|
||||
#
|
||||
# This is useful in case we want to verify that all ebuilds are pointing at the
|
||||
# right commit hash when we are doing a build on a branch. It is intended to be
|
||||
# used prior to tagging and can be used instead of a preflight queue. It is an
|
||||
# alternative to cros_mark_all_as_stable that does not require a chroot and
|
||||
# does not increase the revision number on ebuilds.
|
||||
#
|
||||
# Unlike cros_mark_all_as_stable, which only updates the latest stable ebuild
|
||||
# for a given board, this script updates all stable ebuilds for all boards,
|
||||
# including unused stable ebuilds. We do this for the sake of simplicity
|
||||
# because it's hard to know in advance which ebuilds are truly unused, and it
|
||||
# shouldn't hurt to update unused ebuilds.
|
||||
#
|
||||
# This script does not support cros_mark_as_stable_blacklist. If there are any
|
||||
# packages in the blacklist, this script exits with an error message.
|
||||
#
|
||||
# Long term, the plan is to get rid of this script and replace it with
|
||||
# cros_mark_all_as_stable. This script is only present to help with branching.
|
||||
#
|
||||
# Example usage: ./cros_mark_branch_as_stable
|
||||
|
||||
# --- BEGIN COMMON.SH BOILERPLATE ---
|
||||
# Load common CrOS utilities. Inside the chroot this file is installed in
|
||||
# /usr/lib/crosutils. Outside the chroot we find it relative to the script's
|
||||
# location.
|
||||
find_common_sh() {
|
||||
local common_paths=(/usr/lib/crosutils $(dirname "$(readlink -f "$0")"))
|
||||
local path
|
||||
|
||||
SCRIPT_ROOT=
|
||||
for path in "${common_paths[@]}"; do
|
||||
if [ -r "${path}/common.sh" ]; then
|
||||
SCRIPT_ROOT=${path}
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
find_common_sh
|
||||
. "${SCRIPT_ROOT}/common.sh" || (echo "Unable to load common.sh" && exit 1)
|
||||
# --- END COMMON.SH BOILERPLATE ---
|
||||
|
||||
function is_workon() { xargs grep -lE '^inherit.*cros-workon'; }
|
||||
function is_stable() { xargs grep -lE '^KEYWORDS=[^~]*$'; }
|
||||
function is_unstable() { xargs grep -lE '^KEYWORDS=.*~'; }
|
||||
|
||||
function get_workon_commit() {
|
||||
# Get the latest workon commit associated with an ebuild.
|
||||
ebuild="$1"
|
||||
dir=$(dirname "$ebuild")
|
||||
CATEGORY=$(basename "$(dirname "$dir")")
|
||||
CROS_WORKON_LOCALNAME=$(basename "$dir")
|
||||
CROS_WORKON_SUBDIR=
|
||||
|
||||
# Grab the code from the ebuild that initializes the CROS_WORKON_*
|
||||
# variables, and eval it. Note that this only works if the variables are at
|
||||
# the start of the line (i.e. it doesn't work for "if" statements).
|
||||
eval $(grep -E '^CROS_WORKON' $ebuild)
|
||||
|
||||
SUFFIX="$CROS_WORKON_LOCALNAME/$CROS_WORKON_SUBDIR"
|
||||
if [[ "$CATEGORY" = "chromeos-base" ]]; then
|
||||
SRCDIR="$GCLIENT_ROOT/src/platform/$SUFFIX"
|
||||
else
|
||||
SRCDIR="$GCLIENT_ROOT/src/third_party/$SUFFIX"
|
||||
fi
|
||||
|
||||
# TODO(anush): This hack is only necessary because the kernel ebuild has "if"
|
||||
# statements, so we can't grab the CROS_WORKON_LOCALNAME properly. We should
|
||||
# clean up the kernel ebuild and remove this hack.
|
||||
if ! [[ -d "$SRCDIR" ]] && [[ "$CROS_WORKON_LOCALNAME" = "kernel" ]]; then
|
||||
SRCDIR="$GCLIENT_ROOT/src/third_party/kernel/files"
|
||||
fi
|
||||
|
||||
cd $SRCDIR && git rev-parse HEAD
|
||||
}
|
||||
|
||||
BLACKLIST_FILE="${SCRIPTS_DIR}/cros_mark_as_stable_blacklist"
|
||||
BLACKLIST=$(cat "$BLACKLIST_FILE")
|
||||
if [[ -n "$BLACKLIST" ]]; then
|
||||
die "$0 does not support cros_mark_as_stable_blacklist"
|
||||
fi
|
||||
|
||||
for overlay in "$GCLIENT_ROOT/src/private-overlays/chromeos-overlay" \
|
||||
"$GCLIENT_ROOT/src/third_party/chromiumos-overlay"; do
|
||||
if [[ -d "$overlay" ]]; then
|
||||
ebuilds=$(find "$overlay" -type f -name "*.ebuild" | is_workon | is_stable)
|
||||
for ebuild in $ebuilds; do
|
||||
dir=$(dirname "$ebuild")
|
||||
unstable_ebuild=$(echo "$dir"/*-9999.ebuild | is_workon | is_unstable)
|
||||
if [[ -f "$unstable_ebuild" ]]; then
|
||||
COMMIT=$(get_workon_commit $unstable_ebuild)
|
||||
sed -e '/^KEYWORDS="/s/~//g' -e '/^CROS_WORKON_COMMIT=/d' \
|
||||
-e "/^EAPI/s/\$/\nCROS_WORKON_COMMIT=\"$COMMIT\"/g" \
|
||||
"$unstable_ebuild" > "$ebuild"
|
||||
else
|
||||
echo "No 9999 ebuild for $ebuild" >&2
|
||||
COMMIT=$(get_workon_commit $ebuild)
|
||||
sed -i -e "/^CROS_WORKON_COMMIT/s|=.*|=\"$COMMIT\"|" "$ebuild"
|
||||
fi
|
||||
if [[ -z "$COMMIT" ]]; then
|
||||
die "No commit hash for $ebuild"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
echo Updated all ebuilds
|
||||
Loading…
x
Reference in New Issue
Block a user