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

Side by Side Diff: sdk/bin/dartanalyzer_developer

Issue 15954011: Ensure proper path traversals for linked commands; (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: This patch set fixes / also handles symlinked directories (e.g. sdk/bin) Created 7 years, 6 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
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 5
6 # This file is used to execute the analyzer by running the jar file. 6 # This file is used to execute the analyzer by running the jar file.
7 # It is a simple wrapper enabling us to have simpler command lines in 7 # It is a simple wrapper enabling us to have simpler command lines in
8 # the testing infrastructure. 8 # the testing infrastructure.
9 set -e 9 set -e
10 10
11 function follow_links() { 11 function link_dir() {
12 while [ -h "$1" ]; do 12 a="$1"
13 while [ -h "$a" ]; do
13 # On Mac OS, readlink -f doesn't work. 14 # On Mac OS, readlink -f doesn't work.
14 1="$(readlink "$1")" 15 a="$(readlink "$a")"
15 done 16 done
16 echo "$1" 17 # if dir linked, not file, need to follow dir path:
18 echo $(cd $(dirname $a); pwd -P)
17 } 19 }
18 20
19 # Unlike $0, $BASH_SOURCE points to the absolute path of this file.
20 PROG_NAME="$(follow_links "$BASH_SOURCE")"
21
22 # Handle the case where the binary dir has been symlinked to. 21 # Handle the case where the binary dir has been symlinked to.
23 CUR_DIR="$(follow_links "$(cd "${PROG_NAME%/*}" ; pwd -P)")" 22 CUR_DIR="$(link_dir "$0")"
24 23 SDK_DIR="${CUR_DIR}%/*"}
25 SDK_DIR="$(cd "${CUR_DIR}/.." ; pwd -P)"
26 24
27 if [ -z "$DART_CONFIGURATION" ]; 25 if [ -z "$DART_CONFIGURATION" ];
28 then 26 then
29 DART_CONFIGURATION="ReleaseIA32" 27 DART_CONFIGURATION="ReleaseIA32"
30 fi 28 fi
31 29
32 if [[ `uname` == 'Darwin' ]]; 30 if [[ `uname` == 'Darwin' ]];
33 then 31 then
34 JAR_DIR="$CUR_DIR"/../../xcodebuild/$DART_CONFIGURATION/dartanalyzer 32 JAR_DIR="$CUR_DIR"/../../xcodebuild/$DART_CONFIGURATION/dartanalyzer
35 else 33 else
36 JAR_DIR="$CUR_DIR"/../../out/$DART_CONFIGURATION/dartanalyzer 34 JAR_DIR="$CUR_DIR"/../../out/$DART_CONFIGURATION/dartanalyzer
37 fi 35 fi
38 36
39 JAR_FILE="$JAR_DIR/dartanalyzer.jar" 37 JAR_FILE="$JAR_DIR/dartanalyzer.jar"
40 38
41 exec java -jar $JAR_FILE --dart-sdk "$SDK_DIR" "$@" 39 exec java -jar $JAR_FILE --dart-sdk "$SDK_DIR" "$@"
OLDNEW
« sdk/bin/dart2js ('K') | « sdk/bin/dartanalyzer ('k') | sdk/bin/dartdoc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698