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

Side by Side Diff: enter_chroot.sh

Issue 3277006: scripts: bind ~/.ssh over the chroot's ~/.ssh. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git
Patch Set: Rename MOUNTED_PATH; don't test for mount of plain directory. 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) 2009 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2009 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 # Script to enter the chroot environment 7 # Script to enter the chroot environment
8 8
9 # Load common constants. This should be the first executable line. 9 # Load common constants. This should be the first executable line.
10 # The path to common.sh should be relative to your script's location. 10 # The path to common.sh should be relative to your script's location.
(...skipping 13 matching lines...) Expand all
24 "The build-bot build number (when called by buildbot only)." "b" 24 "The build-bot build number (when called by buildbot only)." "b"
25 DEFINE_string chrome_root "" \ 25 DEFINE_string chrome_root "" \
26 "The root of your chrome browser source. Should contain a 'src' subdir." 26 "The root of your chrome browser source. Should contain a 'src' subdir."
27 DEFINE_string chrome_root_mount "/home/$USER/chrome_root" \ 27 DEFINE_string chrome_root_mount "/home/$USER/chrome_root" \
28 "The mount point of the chrome broswer source in the chroot." 28 "The mount point of the chrome broswer source in the chroot."
29 29
30 DEFINE_boolean official_build $FLAGS_FALSE \ 30 DEFINE_boolean official_build $FLAGS_FALSE \
31 "Set CHROMEOS_OFFICIAL=1 for release builds." 31 "Set CHROMEOS_OFFICIAL=1 for release builds."
32 DEFINE_boolean mount $FLAGS_FALSE "Only set up mounts." 32 DEFINE_boolean mount $FLAGS_FALSE "Only set up mounts."
33 DEFINE_boolean unmount $FLAGS_FALSE "Only tear down mounts." 33 DEFINE_boolean unmount $FLAGS_FALSE "Only tear down mounts."
34 DEFINE_boolean ssh_agent $FLAGS_TRUE "Import ssh agent."
34 35
35 # More useful help 36 # More useful help
36 FLAGS_HELP="USAGE: $0 [flags] [VAR=value] [-- \"command\"] 37 FLAGS_HELP="USAGE: $0 [flags] [VAR=value] [-- \"command\"]
37 38
38 One or more VAR=value pairs can be specified to export variables into 39 One or more VAR=value pairs can be specified to export variables into
39 the chroot environment. For example: 40 the chroot environment. For example:
40 41
41 $0 FOO=bar BAZ=bel 42 $0 FOO=bar BAZ=bel
42 43
43 If [-- \"command\"] is present, runs the command inside the chroot, 44 If [-- \"command\"] is present, runs the command inside the chroot,
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 die "Could not mount $MOUNTED_PATH" 98 die "Could not mount $MOUNTED_PATH"
98 fi 99 fi
99 100
100 MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}/dev")" 101 MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}/dev")"
101 if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ] 102 if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ]
102 then 103 then
103 sudo mount --bind /dev "$MOUNTED_PATH" || \ 104 sudo mount --bind /dev "$MOUNTED_PATH" || \
104 die "Could not mount $MOUNTED_PATH" 105 die "Could not mount $MOUNTED_PATH"
105 fi 106 fi
106 107
108 if [ $FLAGS_ssh_agent -eq $FLAGS_TRUE ]; then
109 TARGET_DIR="$(readlink -f "${FLAGS_chroot}/home/${USER}/.ssh")"
110 if [ -n "${SSH_AUTH_SOCK}" \
111 -a -d "${HOME}/.ssh" ]
112 then
113 mkdir -p "${TARGET_DIR}"
114 cp -r "${HOME}/.ssh/known_hosts" "${TARGET_DIR}"
115 ASOCK="$(dirname "${SSH_AUTH_SOCK}")"
116 mkdir -p "${FLAGS_chroot}/${ASOCK}"
117 sudo mount --bind "${ASOCK}" "${FLAGS_chroot}/${ASOCK}" || \
118 die "Count not mount ${ASOCK}"
119 fi
120 fi
121
107 MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}/dev/pts")" 122 MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}/dev/pts")"
108 if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ] 123 if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ]
109 then 124 then
110 sudo mount none -t devpts "$MOUNTED_PATH" || \ 125 sudo mount none -t devpts "$MOUNTED_PATH" || \
111 die "Could not mount $MOUNTED_PATH" 126 die "Could not mount $MOUNTED_PATH"
112 fi 127 fi
113 128
114 MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}$CHROOT_TRUNK_DIR")" 129 MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}$CHROOT_TRUNK_DIR")"
115 if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ] 130 if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ]
116 then 131 then
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 mkdir -p "$MOUNTED_PATH" 282 mkdir -p "$MOUNTED_PATH"
268 sudo mount --bind "$HOME/.subversion" "$MOUNTED_PATH" || \ 283 sudo mount --bind "$HOME/.subversion" "$MOUNTED_PATH" || \
269 die "Could not mount $MOUNTED_PATH" 284 die "Could not mount $MOUNTED_PATH"
270 fi 285 fi
271 fi 286 fi
272 287
273 # Run command or interactive shell. Also include the non-chrooted path to 288 # Run command or interactive shell. Also include the non-chrooted path to
274 # the source trunk for scripts that may need to print it (e.g. 289 # the source trunk for scripts that may need to print it (e.g.
275 # build_image.sh). 290 # build_image.sh).
276 sudo chroot "$FLAGS_chroot" sudo -i -u $USER $CHROOT_PASSTHRU \ 291 sudo chroot "$FLAGS_chroot" sudo -i -u $USER $CHROOT_PASSTHRU \
277 EXTERNAL_TRUNK_PATH="${FLAGS_trunk}" LANG=C -- "$@" 292 EXTERNAL_TRUNK_PATH="${FLAGS_trunk}" LANG=C SSH_AGENT_PID="${SSH_AGENT_PID}" \
293 SSH_AUTH_SOCK="${SSH_AUTH_SOCK}" -- "$@"
278 294
279 # Remove trap and explicitly unmount 295 # Remove trap and explicitly unmount
280 trap - EXIT 296 trap - EXIT
281 teardown_env 297 teardown_env
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