Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1722)

Unified Diff: cros_mark_all_as_stable

Issue 3034011: Add wrapper script to get list of updates to pass to stablizing script without other changes (Closed) Base URL: ssh://git@chromiumos-git//crosutils.git
Patch Set: Fix CROS_WORKON_COMMIT Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | cros_mark_as_stable.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cros_mark_all_as_stable
diff --git a/cros_mark_all_as_stable b/cros_mark_all_as_stable
new file mode 100755
index 0000000000000000000000000000000000000000..3d7967bc2c4ed6bae2d5089f89ef67204144f443
--- /dev/null
+++ b/cros_mark_all_as_stable
@@ -0,0 +1,67 @@
+#!/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.
+
+# Wrapper scripts around cros_mark_as_stable that marks all packages as stable
+# that have CROS_WORKON_COMMIT that is different than the current HEAD commit
+# of the corresponding git repository.
+
+# Load common constants. This should be the first executable line.
+# The path to common.sh should be relative to your script's location.
+. "$(dirname "$0")/common.sh"
+
+# Load common functions for workon scripts.
+. "$(dirname "$0")/lib/cros_workon_common.sh"
+
+get_default_board
+
+DEFINE_string board "${DEFAULT_BOARD}" \
+ "The board to set package keywords for."
+
+FLAGS "$@" || exit 1
+eval set -- "${FLAGS_ARGV}"
+
+set -e
+
+BOARD_DIR=/build/"${FLAGS_board}"
+EQUERYCMD=equery-"${FLAGS_board}"
+EBUILDCMD=ebuild-"${FLAGS_board}"
+
+PACKAGES=$( show_workon_ebuilds )
+
+GRAB_HEAD_COMMIT_CMD="git show HEAD | head -1 | cut -f 2 -d ' '"
+
+# Packages to mark as stable.
+PACKAGE_LIST=""
+# List of commit ids corresponding to package list.
+COMMIT_ID_LIST=""
+
+# For each package, compares the head commit id to the commit id in the ebuild.
+# If they do not match, add the package and its commit id into ${PACKAGE_LIST}
+# and ${COMMIT_ID_LIST}
+for package in ${PACKAGES}; do
+ ebuild_path=$(${EQUERYCMD} which ${package}) || continue
+ # Sets ${CROS_WORKON_SRCDIR} from the ebuild.
+ eval $(${EBUILDCMD} ${ebuild_path} info) &> /dev/null || continue
+ head_commit=$( cd "${CROS_WORKON_SRCDIR}" &&\
+ bash -c "${GRAB_HEAD_COMMIT_CMD}" ) || continue
+ egit_commit=\
+ $(eval echo $(grep CROS_WORKON_COMMIT ${ebuild_path} | cut -f 2 -d '=')) ||\
+ echo "No CROS_WORKON_COMMIT found in ${ebuild_path}"
+ if [[ ${head_commit} != ${egit_commit} ]] && \
+ [ -n "${head_commit}" ]; then
+ info\
+ "HEAD ${head_commit} != CROS_WORKON_COMMIT ${egit_commit} for ${package}"
+ PACKAGE_LIST="${PACKAGE_LIST} ${package}"
+ COMMIT_ID_LIST="${COMMIT_ID_LIST} ${head_commit}"
+ fi
+done
+
+info "Candidate package list ${PACKAGE_LIST}"
+info "With commit id list ${COMMIT_ID_LIST}"
+
+./cros_mark_as_stable --board ${FLAGS_board} -p "${PACKAGE_LIST}" \
+ -i "${COMMIT_ID_LIST}" commit || \
+ die "Could not mark all packages as stable"
« no previous file with comments | « no previous file | cros_mark_as_stable.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698