OLD | NEW |
1 #!/bin/bash | 1 #!/bin/bash |
2 | 2 |
3 # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. | 3 # Copyright (c) 2011 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 # --- BEGIN COMMON.SH BOILERPLATE --- | 9 # --- BEGIN COMMON.SH BOILERPLATE --- |
10 # Load common CrOS utilities. Inside the chroot this file is installed in | 10 # Load common CrOS utilities. Inside the chroot this file is installed in |
(...skipping 26 matching lines...) Expand all Loading... |
37 "The destination dir for the chroot environment." "d" | 37 "The destination dir for the chroot environment." "d" |
38 DEFINE_string trunk "$GCLIENT_ROOT" \ | 38 DEFINE_string trunk "$GCLIENT_ROOT" \ |
39 "The source trunk to bind mount within the chroot." "s" | 39 "The source trunk to bind mount within the chroot." "s" |
40 DEFINE_string build_number "" \ | 40 DEFINE_string build_number "" \ |
41 "The build-bot build number (when called by buildbot only)." "b" | 41 "The build-bot build number (when called by buildbot only)." "b" |
42 DEFINE_string chrome_root "" \ | 42 DEFINE_string chrome_root "" \ |
43 "The root of your chrome browser source. Should contain a 'src' subdir." | 43 "The root of your chrome browser source. Should contain a 'src' subdir." |
44 DEFINE_string chrome_root_mount "/home/$USER/chrome_root" \ | 44 DEFINE_string chrome_root_mount "/home/$USER/chrome_root" \ |
45 "The mount point of the chrome broswer source in the chroot." | 45 "The mount point of the chrome broswer source in the chroot." |
46 | 46 |
47 DEFINE_boolean git_config $FLAGS_TRUE \ | |
48 "Config git to work with your user/pass in the chroot." | |
49 DEFINE_boolean official_build $FLAGS_FALSE \ | 47 DEFINE_boolean official_build $FLAGS_FALSE \ |
50 "Set CHROMEOS_OFFICIAL=1 for release builds." | 48 "Set CHROMEOS_OFFICIAL=1 for release builds." |
51 DEFINE_boolean mount $FLAGS_FALSE "Only set up mounts." | 49 DEFINE_boolean mount $FLAGS_FALSE "Only set up mounts." |
52 DEFINE_boolean unmount $FLAGS_FALSE "Only tear down mounts." | 50 DEFINE_boolean unmount $FLAGS_FALSE "Only tear down mounts." |
53 DEFINE_boolean ssh_agent $FLAGS_TRUE "Import ssh agent." | 51 DEFINE_boolean ssh_agent $FLAGS_TRUE "Import ssh agent." |
54 DEFINE_boolean verbose $FLAGS_FALSE "Print out actions taken" | 52 DEFINE_boolean verbose $FLAGS_FALSE "Print out actions taken" |
55 | 53 |
56 # More useful help | 54 # More useful help |
57 FLAGS_HELP="USAGE: $0 [flags] [VAR=value] [-- command [arg1] [arg2] ...] | 55 FLAGS_HELP="USAGE: $0 [flags] [VAR=value] [-- command [arg1] [arg2] ...] |
58 | 56 |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 CHROOT_PASSTHRU="${CHROOT_PASSTHRU} \ | 353 CHROOT_PASSTHRU="${CHROOT_PASSTHRU} \ |
356 CHROMEOS_RELEASE_APPID=${CHROMEOS_RELEASE_APPID:-"{DEV-BUILD}"}" | 354 CHROMEOS_RELEASE_APPID=${CHROMEOS_RELEASE_APPID:-"{DEV-BUILD}"}" |
357 | 355 |
358 if [ -d "$HOME/.subversion" ]; then | 356 if [ -d "$HOME/.subversion" ]; then |
359 TARGET="/home/${USER}/.subversion" | 357 TARGET="/home/${USER}/.subversion" |
360 mkdir -p "${FLAGS_chroot}${TARGET}" | 358 mkdir -p "${FLAGS_chroot}${TARGET}" |
361 ensure_mounted "${HOME}/.subversion" "--bind" "${TARGET}" | 359 ensure_mounted "${HOME}/.subversion" "--bind" "${TARGET}" |
362 fi | 360 fi |
363 | 361 |
364 # Configure committer username and email in chroot .gitconfig | 362 # Configure committer username and email in chroot .gitconfig |
365 if [ $FLAGS_git_config -eq $FLAGS_TRUE ]; then | 363 git config -f ${FLAGS_chroot}/home/${USER}/.gitconfig --replace-all \ |
366 git config -f ${FLAGS_chroot}/home/${USER}/.gitconfig --replace-all \ | 364 user.name "$(cd /tmp; git var GIT_COMMITTER_IDENT | sed -e 's/ *<.*//')" || |
367 user.name "$(cd /tmp; git var GIT_COMMITTER_IDENT | sed -e 's/ *<.*//')" | 365 true |
368 git config -f ${FLAGS_chroot}/home/${USER}/.gitconfig --replace-all \ | 366 git config -f ${FLAGS_chroot}/home/${USER}/.gitconfig --replace-all \ |
369 user.email "$(cd /tmp; git var GIT_COMMITTER_IDENT | \ | 367 user.email "$(cd /tmp; git var GIT_COMMITTER_IDENT | \ |
370 sed -e 's/.*<\([^>]*\)>.*/\1/')" | 368 sed -e 's/.*<\([^>]*\)>.*/\1/')" || |
371 fi | 369 true |
372 | 370 |
373 # Run command or interactive shell. Also include the non-chrooted path to | 371 # Run command or interactive shell. Also include the non-chrooted path to |
374 # the source trunk for scripts that may need to print it (e.g. | 372 # the source trunk for scripts that may need to print it (e.g. |
375 # build_image.sh). | 373 # build_image.sh). |
376 sudo -- chroot "$FLAGS_chroot" sudo -i -u $USER $CHROOT_PASSTHRU \ | 374 sudo -- chroot "$FLAGS_chroot" sudo -i -u $USER $CHROOT_PASSTHRU \ |
377 EXTERNAL_TRUNK_PATH="${FLAGS_trunk}" LANG=C SSH_AGENT_PID="${SSH_AGENT_PID}" \ | 375 EXTERNAL_TRUNK_PATH="${FLAGS_trunk}" LANG=C SSH_AGENT_PID="${SSH_AGENT_PID}" \ |
378 SSH_AUTH_SOCK="${SSH_AUTH_SOCK}" "$@" | 376 SSH_AUTH_SOCK="${SSH_AUTH_SOCK}" "$@" |
379 | 377 |
380 # Remove trap and explicitly unmount | 378 # Remove trap and explicitly unmount |
381 trap - EXIT | 379 trap - EXIT |
382 teardown_env | 380 teardown_env |
OLD | NEW |