| 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 |