| 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 25 matching lines...) Expand all Loading... |
| 36 # eat the workon command keywords: start, stop or list. | 36 # eat the workon command keywords: start, stop or list. |
| 37 WORKON_CMD=$1 | 37 WORKON_CMD=$1 |
| 38 shift | 38 shift |
| 39 | 39 |
| 40 ATOM_LIST=$@ | 40 ATOM_LIST=$@ |
| 41 | 41 |
| 42 BOARD_DIR=/build/"${FLAGS_board}" | 42 BOARD_DIR=/build/"${FLAGS_board}" |
| 43 KEYWORDS_DIR=${BOARD_DIR}/etc/portage/package.keywords | 43 KEYWORDS_DIR=${BOARD_DIR}/etc/portage/package.keywords |
| 44 KEYWORDS_FILE=${KEYWORDS_DIR}/cros-workon | 44 KEYWORDS_FILE=${KEYWORDS_DIR}/cros-workon |
| 45 | 45 |
| 46 sudo mkdir -p "${KEYWORDS_DIR}" || die "mkdir -p ${KEYWORDS_DIR}" |
| 47 sudo touch "${KEYWORDS_FILE}" || die "touch ${KEYWORDS_FILE}" |
| 48 |
| 46 # Move a stable ebuild to the live development catgeory. The ebuild | 49 # Move a stable ebuild to the live development catgeory. The ebuild |
| 47 # src_unpack step fetches the package source for local development. | 50 # src_unpack step fetches the package source for local development. |
| 48 ebuild_to_live () { | 51 ebuild_to_live () { |
| 49 | |
| 50 local atoms=$1 | 52 local atoms=$1 |
| 51 | 53 |
| 52 echo | |
| 53 echo "Moving stable ebuild to live development:" | |
| 54 | |
| 55 if [[ -d "${KEYWORDS_DIR}" ]]; then | |
| 56 sudo mkdir -p "${KEYWORDS_DIR}" | |
| 57 fi | |
| 58 | |
| 59 for atom in ${atoms}; do | 54 for atom in ${atoms}; do |
| 60 | 55 if ! grep -qx "${atom}" "${KEYWORDS_FILE}" ; then |
| 61 if [[ -f "${KEYWORDS_FILE}" ]] && | |
| 62 $(grep -qx "${atom}" "${KEYWORDS_FILE}") ; then | |
| 63 echo " '${atom}' already marked for development" | |
| 64 else | |
| 65 echo " '${atom}'" | |
| 66 sudo bash -c "echo \"${atom}\" >> \"${KEYWORDS_FILE}\"" | 56 sudo bash -c "echo \"${atom}\" >> \"${KEYWORDS_FILE}\"" |
| 67 fi | 57 fi |
| 68 done | 58 done |
| 69 } | 59 } |
| 70 | 60 |
| 71 # Move a live development ebuild back to stable. | 61 # Move a live development ebuild back to stable. |
| 72 ebuild_to_stable () { | 62 ebuild_to_stable () { |
| 73 | |
| 74 local atoms=$1 | 63 local atoms=$1 |
| 75 | 64 |
| 76 echo | |
| 77 echo "Moving live development ebuild to stable:" | |
| 78 | |
| 79 for atom in ${atoms}; do | 65 for atom in ${atoms}; do |
| 80 | 66 sudo bash -c "grep -v '^${atom}\$' \"${KEYWORDS_FILE}\" > \ |
| 81 if [[ -f "${KEYWORDS_FILE}" ]] && | 67 \"${KEYWORDS_FILE}+\"" |
| 82 $(grep -qx "${atom}" "${KEYWORDS_FILE}") ; then | 68 sudo mv "${KEYWORDS_FILE}+" "${KEYWORDS_FILE}" |
| 83 echo " '${atom}'" | |
| 84 » sudo bash -c "grep -v '^${atom}\$' \"${KEYWORDS_FILE}\" > \ | |
| 85 \"${KEYWORDS_FILE}+\"" | |
| 86 sudo mv "${KEYWORDS_FILE}+" "${KEYWORDS_FILE}" | |
| 87 fi | |
| 88 done | 69 done |
| 89 } | 70 } |
| 90 | 71 |
| 91 # Display ebuilds currently part of the live branch and open for development. | 72 # Display ebuilds currently part of the live branch and open for development. |
| 92 show_live_ebuilds () { | 73 show_live_ebuilds () { |
| 93 echo | |
| 94 echo "Live development ebuilds:" | |
| 95 | |
| 96 cat "${KEYWORDS_FILE}" | 74 cat "${KEYWORDS_FILE}" |
| 97 } | 75 } |
| 98 | 76 |
| 99 case ${WORKON_CMD} in | 77 case ${WORKON_CMD} in |
| 100 start) ebuild_to_live "${ATOM_LIST}" ;; | 78 start) ebuild_to_live "${ATOM_LIST}" ;; |
| 101 stop) ebuild_to_stable "${ATOM_LIST}" ;; | 79 stop) ebuild_to_stable "${ATOM_LIST}" ;; |
| 102 list) show_live_ebuilds ;; | 80 list) show_live_ebuilds ;; |
| 103 *) die "valid cros_workon commands: start|stop|list" ;; | 81 *) die "valid cros_workon commands: start|stop|list" ;; |
| 104 esac | 82 esac |
| 105 | |
| OLD | NEW |