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

Side by Side Diff: common.sh

Issue 6344016: Fix common.sh to work in it's new location at /usr/lib/crosutils. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git@master
Patch Set: Switch to searching a list of possible locations for the gclient root. Created 9 years, 11 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 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 # Common constants for build scripts 5 # Common constants for build scripts
6 # This must evaluate properly for both /bin/bash and /bin/sh 6 # This must evaluate properly for both /bin/bash and /bin/sh
7 7
8 # All scripts should die on error unless commands are specifically excepted 8 # All scripts should die on error unless commands are specifically excepted
9 # by prefixing with '!' or surrounded by 'set +e' / 'set -e'. 9 # by prefixing with '!' or surrounded by 'set +e' / 'set -e'.
10 # TODO: Re-enable this once shflags is less prone to dying. 10 # TODO: Re-enable this once shflags is less prone to dying.
11 #set -e 11 #set -e
12 12
13 # The number of jobs to pass to tools that can run in parallel (such as make 13 # The number of jobs to pass to tools that can run in parallel (such as make
14 # and dpkg-buildpackage 14 # and dpkg-buildpackage
15 NUM_JOBS=`grep -c "^processor" /proc/cpuinfo` 15 NUM_JOBS=`grep -c "^processor" /proc/cpuinfo`
16 16
17 # Store location of the calling script. 17 # Store location of the calling script.
18 TOP_SCRIPT_DIR="${TOP_SCRIPT_DIR:-$(dirname $0)}" 18 TOP_SCRIPT_DIR="${TOP_SCRIPT_DIR:-$(dirname $0)}"
19 19
20 # Detect whether we're inside a chroot or not
21 if [ -e /etc/debian_chroot ]
22 then
23 INSIDE_CHROOT=1
24 else
25 INSIDE_CHROOT=0
26 fi
27
28 # Construct a list of possible locations for the source tree. This list is
29 # based on various environment variables and globals that may have been set
30 # by the calling script.
31 function get_gclient_root_list() {
32 if [ $INSIDE_CHROOT -eq 1 ]; then echo "/home/${USER}/trunk"
davidjames 2011/01/26 23:41:33 Since this isn't a one-line if statement, better t
robotboy 2011/01/26 23:59:34 Done.
33 if [ ! -z "${SUDO_USER}" ]; then echo "/home/${SUDO_USER}/trunk"; fi
davidjames 2011/01/26 23:41:33 Any reason why you didn't use -n here (and elsewhe
robotboy 2011/01/26 23:59:34 Done.
34 fi
35
36 if [ ! -z "${COMMON_SH}" ]; then echo "$(dirname "$COMMON_SH")/../.."; fi
37 if [ ! -z "${BASH_SOURCE}" ]; then echo "$(dirname "$BASH_SOURCE")/../.."; fi
38 }
39
40 # Based on the list of possible source locations we set GCLIENT_ROOT if it is
41 # not already defined by looking for a src directory in each seach path
42 # location. If we do not find a valid looking root we error out.
43 function get_gclient_root() {
44 if [ ! -z "${GCLIENT_ROOT}" ]; then
45 return
46 fi
47
48 for path in $(get_gclient_root_list); do
49 if [ -d "${path}/src" ]; then
50 GCLIENT_ROOT=${path}
51 break
52 fi
53 done
54
55 if [ -z "${GCLIENT_ROOT}" ]; then
56 # Using dash or sh, we don't know where we are. $0 refers to the calling
57 # script, not ourselves, so that doesn't help us.
58 echo "Unable to determine location for common.sh. If you are sourcing"
59 echo "common.sh from a script run via dash or sh, you must do it in the"
60 echo "following way:"
61 echo ' COMMON_SH="$(dirname "$0")/../../scripts/common.sh"'
62 echo ' . "$COMMON_SH"'
63 echo "where the first line is the relative path from your script to"
64 echo "common.sh."
65 exit 1
66 fi
67 }
68
20 # Find root of source tree 69 # Find root of source tree
21 if [ "x$GCLIENT_ROOT" != "x" ] 70 get_gclient_root
22 then
23 # GCLIENT_ROOT already set, so we're done
24 true
25 elif [ "x$COMMON_SH" != "x" ]
26 then
27 # COMMON_SH set, so assume that's us
28 GCLIENT_ROOT="$(dirname "$COMMON_SH")/../.."
29 elif [ "x$BASH_SOURCE" != "x" ]
30 then
31 # Using bash, so we can find ourselves
32 GCLIENT_ROOT="$(dirname "$BASH_SOURCE")/../.."
33 else
34 # Using dash or sh, we don't know where we are. $0 refers to the calling
35 # script, not ourselves, so that doesn't help us.
36 echo "Unable to determine location for common.sh. If you are sourcing"
37 echo "common.sh from a script run via dash or sh, you must do it in the"
38 echo "following way:"
39 echo ' COMMON_SH="$(dirname "$0")/../../scripts/common.sh"'
40 echo ' . "$COMMON_SH"'
41 echo "where the first line is the relative path from your script to"
42 echo "common.sh."
43 exit 1
44 fi
45 71
46 # Canonicalize the directories for the root dir and the calling script. 72 # Canonicalize the directories for the root dir and the calling script.
47 # readlink is part of coreutils and should be present even in a bare chroot. 73 # readlink is part of coreutils and should be present even in a bare chroot.
48 # This is better than just using 74 # This is better than just using
49 # FOO = "$(cd $FOO ; pwd)" 75 # FOO = "$(cd $FOO ; pwd)"
50 # since that leaves symbolic links intact. 76 # since that leaves symbolic links intact.
51 # Note that 'realpath' is equivalent to 'readlink -f'. 77 # Note that 'realpath' is equivalent to 'readlink -f'.
52 TOP_SCRIPT_DIR=`readlink -f $TOP_SCRIPT_DIR` 78 TOP_SCRIPT_DIR=`readlink -f $TOP_SCRIPT_DIR`
53 GCLIENT_ROOT=`readlink -f $GCLIENT_ROOT` 79 GCLIENT_ROOT=`readlink -f $GCLIENT_ROOT`
54 80
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 fi 135 fi
110 # Strip CR 136 # Strip CR
111 ALL_BOARDS=$(echo $ALL_BOARDS) 137 ALL_BOARDS=$(echo $ALL_BOARDS)
112 # Set a default BOARD 138 # Set a default BOARD
113 #DEFAULT_BOARD=x86-generic # or... 139 #DEFAULT_BOARD=x86-generic # or...
114 DEFAULT_BOARD=$(echo $ALL_BOARDS | awk '{print $NF}') 140 DEFAULT_BOARD=$(echo $ALL_BOARDS | awk '{print $NF}')
115 141
116 # Enable --fast by default. 142 # Enable --fast by default.
117 DEFAULT_FAST="${FLAGS_TRUE}" 143 DEFAULT_FAST="${FLAGS_TRUE}"
118 144
119 # Detect whether we're inside a chroot or not
120 if [ -e /etc/debian_chroot ]
121 then
122 INSIDE_CHROOT=1
123 else
124 INSIDE_CHROOT=0
125 fi
126
127 # Directory locations inside the dev chroot 145 # Directory locations inside the dev chroot
128 CHROOT_TRUNK_DIR="/home/$USER/trunk" 146 CHROOT_TRUNK_DIR="/home/$USER/trunk"
129 147
130 # Install make for portage ebuilds. Used by build_image and gmergefs. 148 # Install make for portage ebuilds. Used by build_image and gmergefs.
131 # TODO: Is /usr/local/autotest-chrome still used by anyone? 149 # TODO: Is /usr/local/autotest-chrome still used by anyone?
132 DEFAULT_INSTALL_MASK=" 150 DEFAULT_INSTALL_MASK="
133 *.a 151 *.a
134 *.la 152 *.la
135 /etc/init.d 153 /etc/init.d
136 /etc/runlevels 154 /etc/runlevels
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 593
576 BOARD=$(echo "$flags_board" | cut -d '_' -f 1) 594 BOARD=$(echo "$flags_board" | cut -d '_' -f 1)
577 VARIANT=${flags_variant:-$(echo "$flags_board" | cut -s -d '_' -f 2)} 595 VARIANT=${flags_variant:-$(echo "$flags_board" | cut -s -d '_' -f 2)}
578 596
579 if [ -n "$VARIANT" ]; then 597 if [ -n "$VARIANT" ]; then
580 BOARD_VARIANT="${BOARD}_${VARIANT}" 598 BOARD_VARIANT="${BOARD}_${VARIANT}"
581 else 599 else
582 BOARD_VARIANT="${BOARD}" 600 BOARD_VARIANT="${BOARD}"
583 fi 601 fi
584 } 602 }
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