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

Side by Side Diff: cros_workon

Issue 3446002: cros_workon: WORKON_FILE should be owned by the user (Closed) Base URL: http://git.chromium.org/git/crosutils.git
Patch Set: Created 10 years, 3 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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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