OLD | NEW |
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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 BOARD_STR="host" | 67 BOARD_STR="host" |
68 fi | 68 fi |
69 | 69 |
70 WORKON_DIR=${CHROOT_TRUNK_DIR}/.config/cros_workon | 70 WORKON_DIR=${CHROOT_TRUNK_DIR}/.config/cros_workon |
71 KEYWORDS_DIR=${BOARD_DIR}/etc/portage/package.keywords | 71 KEYWORDS_DIR=${BOARD_DIR}/etc/portage/package.keywords |
72 UNMASK_DIR=${BOARD_DIR}/etc/portage/package.unmask | 72 UNMASK_DIR=${BOARD_DIR}/etc/portage/package.unmask |
73 WORKON_FILE=${WORKON_DIR}/${FLAGS_board:-host} | 73 WORKON_FILE=${WORKON_DIR}/${FLAGS_board:-host} |
74 KEYWORDS_FILE=${KEYWORDS_DIR}/cros-workon | 74 KEYWORDS_FILE=${KEYWORDS_DIR}/cros-workon |
75 UNMASK_FILE=${UNMASK_DIR}/cros-workon | 75 UNMASK_FILE=${UNMASK_DIR}/cros-workon |
76 | 76 |
77 # TODO(msb): remove the backward compatibility after 09/01/2010 | 77 # TODO(msb): remove the backward compatibility after 10/01/2010 |
78 sudo mkdir -p "${WORKON_DIR}" "${KEYWORDS_DIR}" "${UNMASK_DIR}" || \ | 78 if [ -d "${WORKON_DIR}" ]; then |
79 die "mkdir -p ${WORKON_DIR} ${KEYWORDS_DIR} ${UNMASK_DIR}" | 79 sudo chown -R "${USER}" "${WORKON_DIR}" |
| 80 fi |
| 81 |
| 82 mkdir -p "${WORKON_DIR}" || die "mkdir -p ${WORKON_DIR}" |
| 83 touch "${WORKON_FILE}" || die "touch ${WORKON_FILE}" |
| 84 sudo mkdir -p "${KEYWORDS_DIR}" "${UNMASK_DIR}" || \ |
| 85 die "mkdir -p ${KEYWORDS_DIR} ${UNMASK_DIR}" |
80 if [ ! -L "${KEYWORDS_FILE}" ]; then | 86 if [ ! -L "${KEYWORDS_FILE}" ]; then |
81 sudo rm -f "${KEYWORDS_FILE}" | 87 sudo rm -f "${KEYWORDS_FILE}" |
82 sudo ln -s "${WORKON_FILE}" "${KEYWORDS_FILE}" || \ | 88 sudo ln -s "${WORKON_FILE}" "${KEYWORDS_FILE}" || \ |
83 die "ln -s ${WORKON_FILE} ${KEYWORDS_FILE}" | 89 die "ln -s ${WORKON_FILE} ${KEYWORDS_FILE}" |
84 fi | 90 fi |
85 if [ ! -L "${UNMASK_FILE}" ]; then | 91 if [ ! -L "${UNMASK_FILE}" ]; then |
86 [ -f "${UNMASK_FILE}" ] && sudo mv "${UNMASK_FILE}" "${WORKON_FILE}" | 92 [ -f "${UNMASK_FILE}" ] && sudo mv "${UNMASK_FILE}" "${WORKON_FILE}" |
87 sudo ln -s "${WORKON_FILE}" "${UNMASK_FILE}" || \ | 93 sudo ln -s "${WORKON_FILE}" "${UNMASK_FILE}" || \ |
88 die "ln -s ${WORKON_FILE} ${UNMASK_FILE}" | 94 die "ln -s ${WORKON_FILE} ${UNMASK_FILE}" |
89 fi | 95 fi |
90 sudo touch "${WORKON_FILE}" || \ | |
91 die "touch ${WORKON_FILE}" | |
92 | 96 |
93 # Canonicalize package name to category/package. | 97 # Canonicalize package name to category/package. |
94 canonicalize_name () { | 98 canonicalize_name () { |
95 local pkgfile | 99 local pkgfile |
96 local pkgname | 100 local pkgname |
97 | 101 |
98 if ! pkgfile=$(ACCEPT_KEYWORDS="**" ${EQUERYCMD} which $1); then | 102 if ! pkgfile=$(ACCEPT_KEYWORDS="**" ${EQUERYCMD} which $1); then |
99 warn "error looking up package $1" 1>&2 | 103 warn "error looking up package $1" 1>&2 |
100 return 1 | 104 return 1 |
101 fi | 105 fi |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 esac | 271 esac |
268 fi | 272 fi |
269 | 273 |
270 case ${WORKON_CMD} in | 274 case ${WORKON_CMD} in |
271 start) ebuild_to_live "${ATOM_LIST}" ;; | 275 start) ebuild_to_live "${ATOM_LIST}" ;; |
272 stop) ebuild_to_stable "${ATOM_LIST}" ;; | 276 stop) ebuild_to_stable "${ATOM_LIST}" ;; |
273 list) [ ${FLAGS_all} = "${FLAGS_FALSE}" ] && show_live_ebuilds || show_worko
n_ebuilds ;; | 277 list) [ ${FLAGS_all} = "${FLAGS_FALSE}" ] && show_live_ebuilds || show_worko
n_ebuilds ;; |
274 iterate)ebuild_iterate "${ATOM_LIST}" ;; | 278 iterate)ebuild_iterate "${ATOM_LIST}" ;; |
275 *) die "$(basename $0): command '${WORKON_CMD}' not recognized" ;; | 279 *) die "$(basename $0): command '${WORKON_CMD}' not recognized" ;; |
276 esac | 280 esac |
OLD | NEW |