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

Side by Side Diff: cros_mark_all_as_stable

Issue 3076038: cros_mark_all_as_stable: introduce blacklist, set the initial blacklist source as ./ (Closed) Base URL: ssh://gitrw.chromium.org/crosutils
Patch Set: 80 chars Created 10 years, 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | cros_mark_as_stable_blacklist » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # Wrapper scripts around cros_mark_as_stable that marks all packages as stable 7 # Wrapper scripts around cros_mark_as_stable that marks all packages as stable
8 # that have CROS_WORKON_COMMIT that is different than the current HEAD commit 8 # that have CROS_WORKON_COMMIT that is different than the current HEAD commit
9 # of the corresponding git repository. 9 # of the corresponding git repository.
10 10
(...skipping 21 matching lines...) Expand all
32 EBUILDCMD=ebuild-"${FLAGS_board}" 32 EBUILDCMD=ebuild-"${FLAGS_board}"
33 33
34 PACKAGES=$( show_workon_ebuilds ) 34 PACKAGES=$( show_workon_ebuilds )
35 35
36 GRAB_HEAD_COMMIT_CMD="git show HEAD | head -1 | cut -f 2 -d ' '" 36 GRAB_HEAD_COMMIT_CMD="git show HEAD | head -1 | cut -f 2 -d ' '"
37 37
38 # Packages to mark as stable. 38 # Packages to mark as stable.
39 PACKAGE_LIST="" 39 PACKAGE_LIST=""
40 # List of commit ids corresponding to package list. 40 # List of commit ids corresponding to package list.
41 COMMIT_ID_LIST="" 41 COMMIT_ID_LIST=""
42 # List of IFS-delimited ebuilds to ignore.
43 PACKAGE_BLACKLIST=""
44 # File containing the names of blacklisted packages.
45 BLACKLIST_FILE=$(dirname "${0}")/cros_mark_as_stable_blacklist
46
47 [ -f "${BLACKLIST_FILE}" ] && \
48 PACKAGE_BLACKLIST=$(cat "${BLACKLIST_FILE}")
49
50 function package_is_blacklisted() {
51 # Makes a list that looks like "\|package1\|package2\|...packagen".
52 local blist_regex=$(for i in ${PACKAGE_BLACKLIST}; do echo -n "\\|${i}"; done)
53 expr "${1}" : "^\(${blist_regex/\\|/}\)$" &> /dev/null && return 0 || return 1
54 }
42 55
43 # For each package, compares the head commit id to the commit id in the ebuild. 56 # For each package, compares the head commit id to the commit id in the ebuild.
44 # If they do not match, add the package and its commit id into ${PACKAGE_LIST} 57 # If they do not match, add the package and its commit id into ${PACKAGE_LIST}
45 # and ${COMMIT_ID_LIST} 58 # and ${COMMIT_ID_LIST}
46 for package in ${PACKAGES}; do 59 for package in ${PACKAGES}; do
60 if package_is_blacklisted ${package}; then
61 info "${package} blacklisted, skipping"
62 continue
63 fi
47 ebuild_path=$(${EQUERYCMD} which ${package}) || continue 64 ebuild_path=$(${EQUERYCMD} which ${package}) || continue
48 # Sets ${CROS_WORKON_SRCDIR} from the ebuild. 65 # Sets ${CROS_WORKON_SRCDIR} from the ebuild.
49 eval $(${EBUILDCMD} ${ebuild_path} info) &> /dev/null || continue 66 eval $(${EBUILDCMD} ${ebuild_path} info) &> /dev/null || continue
50 head_commit=$( cd "${CROS_WORKON_SRCDIR}" &&\ 67 head_commit=$( cd "${CROS_WORKON_SRCDIR}" &&\
51 bash -c "${GRAB_HEAD_COMMIT_CMD}" ) || continue 68 bash -c "${GRAB_HEAD_COMMIT_CMD}" ) || continue
52 egit_commit=$(\ 69 egit_commit=$(\
53 eval echo $(grep CROS_WORKON_COMMIT ${ebuild_path} | cut -f 2 -d '=')) ||\ 70 eval echo $(grep CROS_WORKON_COMMIT ${ebuild_path} | cut -f 2 -d '=')) ||\
54 echo "No CROS_WORKON_COMMIT found in ${ebuild_path}" 71 echo "No CROS_WORKON_COMMIT found in ${ebuild_path}"
55 if [[ ${head_commit} != ${egit_commit} ]] && \ 72 if [[ ${head_commit} != ${egit_commit} ]] && \
56 [ -n "${head_commit}" ]; then 73 [ -n "${head_commit}" ]; then
57 info\ 74 info\
58 "HEAD ${head_commit} != CROS_WORKON_COMMIT ${egit_commit} for ${package}" 75 "HEAD ${head_commit} != CROS_WORKON_COMMIT ${egit_commit} for ${package}"
59 PACKAGE_LIST="${PACKAGE_LIST} ${package}" 76 PACKAGE_LIST="${PACKAGE_LIST} ${package}"
60 COMMIT_ID_LIST="${COMMIT_ID_LIST} ${head_commit}" 77 COMMIT_ID_LIST="${COMMIT_ID_LIST} ${head_commit}"
61 elif [[ ${head_commit} = ${egit_commit} ]]; then 78 elif [[ ${head_commit} = ${egit_commit} ]]; then
62 info "Commit id's match for ${package}" 79 info "Commit id's match for ${package}"
63 fi 80 fi
64 done 81 done
65 82
66 info "Candidate package list ${PACKAGE_LIST}" 83 info "Candidate package list ${PACKAGE_LIST}"
67 info "With commit id list ${COMMIT_ID_LIST}" 84 info "With commit id list ${COMMIT_ID_LIST}"
68 85
69 ./cros_mark_as_stable --board ${FLAGS_board} -p "${PACKAGE_LIST}" \ 86 ./cros_mark_as_stable --board ${FLAGS_board} -p "${PACKAGE_LIST}" \
70 -i "${COMMIT_ID_LIST}" -t ${FLAGS_tracking_branch} commit || \ 87 -i "${COMMIT_ID_LIST}" -t ${FLAGS_tracking_branch} commit || \
71 die "Could not mark all packages as stable" 88 die "Could not mark all packages as stable"
OLDNEW
« no previous file with comments | « no previous file | cros_mark_as_stable_blacklist » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698