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

Side by Side Diff: cros_workon

Issue 6409031: cros_workon: use portageq instead of sourcing make.conf (Closed) Base URL: http://git.chromium.org/git/crosutils.git@master
Patch Set: Created 9 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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 # This script moves ebuilds between 'stable' and 'live' states. 7 # This script moves ebuilds between 'stable' and 'live' states.
8 # By default 'stable' ebuilds point at and build from source at the 8 # By default 'stable' ebuilds point at and build from source at the
9 # last known good commit. Moving an ebuild to 'live' (via cros_workon start) 9 # last known good commit. Moving an ebuild to 'live' (via cros_workon start)
10 # is intended to support development. The current source tip is fetched, 10 # is intended to support development. The current source tip is fetched,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 [ -n "${FLAGS_board}" ] && [ "${FLAGS_host}" = ${FLAGS_TRUE} ] && \ 51 [ -n "${FLAGS_board}" ] && [ "${FLAGS_host}" = ${FLAGS_TRUE} ] && \
52 FLAGS_board="" # kill board 52 FLAGS_board="" # kill board
53 [ -z "${FLAGS_board}" ] && [ "${FLAGS_host}" = ${FLAGS_FALSE} ] && \ 53 [ -z "${FLAGS_board}" ] && [ "${FLAGS_host}" = ${FLAGS_FALSE} ] && \
54 [ "${WORKON_CMD}" != "list-all" ] && \ 54 [ "${WORKON_CMD}" != "list-all" ] && \
55 die "You must specify either --host or --board=" 55 die "You must specify either --host or --board="
56 56
57 if [ -n "${FLAGS_board}" ]; then 57 if [ -n "${FLAGS_board}" ]; then
58 BOARD_DIR=/build/"${FLAGS_board}" # --board specified 58 BOARD_DIR=/build/"${FLAGS_board}" # --board specified
59 EQUERYCMD=equery-"${FLAGS_board}" 59 EQUERYCMD=equery-"${FLAGS_board}"
60 EBUILDCMD=ebuild-"${FLAGS_board}" 60 EBUILDCMD=ebuild-"${FLAGS_board}"
61 PORTAGEQCMD=portageq-"${FLAGS_board}"
61 BOARD_STR="${FLAGS_board}" 62 BOARD_STR="${FLAGS_board}"
62 BOARD_KEYWORD="$(portageq-${FLAGS_board} envvar ARCH)" 63 BOARD_KEYWORD="$(portageq-${FLAGS_board} envvar ARCH)"
63 else 64 else
64 BOARD_DIR="" # --host specified 65 BOARD_DIR="" # --host specified
65 EQUERYCMD=equery 66 EQUERYCMD=equery
66 EBUILDCMD=ebuild 67 EBUILDCMD=ebuild
68 PORTAGEQCMD=portageq
67 BOARD_STR="host" 69 BOARD_STR="host"
68 BOARD_KEYWORD="$(portageq envvar ARCH)" 70 BOARD_KEYWORD="$(portageq envvar ARCH)"
69 fi 71 fi
70 72
71 WORKON_DIR=${CHROOT_TRUNK_DIR}/.config/cros_workon 73 WORKON_DIR=${CHROOT_TRUNK_DIR}/.config/cros_workon
72 KEYWORDS_DIR=${BOARD_DIR}/etc/portage/package.keywords 74 KEYWORDS_DIR=${BOARD_DIR}/etc/portage/package.keywords
73 UNMASK_DIR=${BOARD_DIR}/etc/portage/package.unmask 75 UNMASK_DIR=${BOARD_DIR}/etc/portage/package.unmask
74 WORKON_FILE=${WORKON_DIR}/${FLAGS_board:-host} 76 WORKON_FILE=${WORKON_DIR}/${FLAGS_board:-host}
75 KEYWORDS_FILE=${KEYWORDS_DIR}/cros-workon 77 KEYWORDS_FILE=${KEYWORDS_DIR}/cros-workon
76 UNMASK_FILE=${UNMASK_DIR}/cros-workon 78 UNMASK_FILE=${UNMASK_DIR}/cros-workon
(...skipping 14 matching lines...) Expand all
91 fi 93 fi
92 if [ ! -L "${UNMASK_FILE}" ]; then 94 if [ ! -L "${UNMASK_FILE}" ]; then
93 [ -f "${UNMASK_FILE}" ] && sudo mv "${UNMASK_FILE}" "${WORKON_FILE}" 95 [ -f "${UNMASK_FILE}" ] && sudo mv "${UNMASK_FILE}" "${WORKON_FILE}"
94 sudo ln -s "${WORKON_FILE}" "${UNMASK_FILE}" || \ 96 sudo ln -s "${WORKON_FILE}" "${UNMASK_FILE}" || \
95 die "ln -s ${WORKON_FILE} ${UNMASK_FILE}" 97 die "ln -s ${WORKON_FILE} ${UNMASK_FILE}"
96 fi 98 fi
97 99
98 find_keyword_workon_ebuilds() { 100 find_keyword_workon_ebuilds() {
99 keyword="${1}" 101 keyword="${1}"
100 102
101 pushd "${BOARD_DIR}"/etc/ 1> /dev/null 103 local cros_overlays=$("${PORTAGEQCMD}" envvar PORTDIR_OVERLAY)
102 source make.conf
103 popd 1> /dev/null
104 local CROS_OVERLAYS="${PORTDIR_OVERLAY}"
105 104
106 # NOTE: overlay may be a symlink, and we have to use ${overlay}/ 105 # NOTE: overlay may be a symlink, and we have to use ${overlay}/
107 for overlay in ${CROS_OVERLAYS}; do 106 for overlay in ${cros_overlays}; do
108 # only look up ebuilds named 9999 to eliminate duplicates 107 # only look up ebuilds named 9999 to eliminate duplicates
109 find ${overlay}/ -name '*9999.ebuild' | \ 108 find ${overlay}/ -name '*9999.ebuild' | \
110 xargs grep -l "inherit.*cros-workon" | \ 109 xargs grep -l "inherit.*cros-workon" | \
111 xargs grep -l "KEYWORDS=.*${keyword}.*" 110 xargs grep -l "KEYWORDS=.*${keyword}.*"
112 done 111 done
113 } 112 }
114 113
115 show_workon_ebuilds() { 114 show_workon_ebuilds() {
116 keyword=$1 115 keyword=$1
117 116
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 fi 266 fi
268 267
269 case ${WORKON_CMD} in 268 case ${WORKON_CMD} in
270 start) ebuild_to_live "${ATOM_LIST}" ;; 269 start) ebuild_to_live "${ATOM_LIST}" ;;
271 stop) ebuild_to_stable "${ATOM_LIST}" ;; 270 stop) ebuild_to_stable "${ATOM_LIST}" ;;
272 list) [ ${FLAGS_all} = "${FLAGS_FALSE}" ] && show_live_ebuilds || show_worko n_ebuilds ${BOARD_KEYWORD} ;; 271 list) [ ${FLAGS_all} = "${FLAGS_FALSE}" ] && show_live_ebuilds || show_worko n_ebuilds ${BOARD_KEYWORD} ;;
273 list-all) show_all_live_ebuilds ;; 272 list-all) show_all_live_ebuilds ;;
274 iterate)ebuild_iterate "${ATOM_LIST}" ;; 273 iterate)ebuild_iterate "${ATOM_LIST}" ;;
275 *) die "$(basename $0): command '${WORKON_CMD}' not recognized" ;; 274 *) die "$(basename $0): command '${WORKON_CMD}' not recognized" ;;
276 esac 275 esac
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698