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

Side by Side Diff: upload_symbols

Issue 3635001: crosutils: Detect sym_upload errors by its stdout instead of return value (Closed) Base URL: http://git.chromium.org/git/crosutils.git
Patch Set: Created 10 years, 2 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 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # Script to upload all debug symbols required for crash reporting 6 # Script to upload all debug symbols required for crash reporting
7 # purposes. This script need only be used to upload release builds 7 # purposes. This script need only be used to upload release builds
8 # symbols or to debug crashes on non-release builds (in which case try 8 # symbols or to debug crashes on non-release builds (in which case try
9 # to only upload the symbols for those executables involved). 9 # to only upload the symbols for those executables involved).
10 # 10 #
(...skipping 14 matching lines...) Expand all
25 DEFINE_string breakpad_root "" "Root directory for breakpad symbols." 25 DEFINE_string breakpad_root "" "Root directory for breakpad symbols."
26 DEFINE_boolean official_build ${FLAGS_FALSE} "Point to official symbol server." 26 DEFINE_boolean official_build ${FLAGS_FALSE} "Point to official symbol server."
27 DEFINE_boolean regenerate ${FLAGS_FALSE} "Regenerate all symbols." 27 DEFINE_boolean regenerate ${FLAGS_FALSE} "Regenerate all symbols."
28 DEFINE_boolean verbose ${FLAGS_FALSE} "Be verbose." 28 DEFINE_boolean verbose ${FLAGS_FALSE} "Be verbose."
29 DEFINE_boolean yes ${FLAGS_FALSE} "Answer yes to all prompts." 29 DEFINE_boolean yes ${FLAGS_FALSE} "Answer yes to all prompts."
30 30
31 SYM_UPLOAD="sym_upload" 31 SYM_UPLOAD="sym_upload"
32 32
33 ANY_ERRORS=0 33 ANY_ERRORS=0
34 34
35 ERR_FILE=$(mktemp "/tmp/err.XXXX") 35 OUT_DIR=$(mktemp -d "/tmp/err.XXXX")
36 36
37 function cleanup() { 37 function cleanup() {
38 rm -f "${ERR_FILE}" 38 rm -rf "${OUT_DIR}"
39 } 39 }
40 40
41 function really_upload() { 41 function really_upload() {
42 if [ ${FLAGS_yes} -eq ${FLAGS_TRUE} ]; then 42 if [ ${FLAGS_yes} -eq ${FLAGS_TRUE} ]; then
43 return 0 43 return 0
44 fi 44 fi
45 echo "Uploading symbols for an entire Chromium OS build is really only " 45 echo "Uploading symbols for an entire Chromium OS build is really only "
46 echo "necessary for release builds and in a few cases for developers " 46 echo "necessary for release builds and in a few cases for developers "
47 echo "to debug problems. It will take considerable time to run. For " 47 echo "to debug problems. It will take considerable time to run. For "
48 echo "developer debugging purposes, consider instead passing specific files " 48 echo "developer debugging purposes, consider instead passing specific files "
49 echo "to upload." 49 echo "to upload."
50 read -p "Are you sure you want to upload all build symbols (y/N)? " SURE 50 read -p "Are you sure you want to upload all build symbols (y/N)? " SURE
51 SURE="${SURE:0:1}" # Get just the first character 51 SURE="${SURE:0:1}" # Get just the first character
52 if [ "${SURE}" != "y" ]; then 52 if [ "${SURE}" != "y" ]; then
53 echo "Ok, better safe than sorry." 53 echo "Ok, better safe than sorry."
54 return 1 54 return 1
55 fi 55 fi
56 return 0 56 return 0
57 } 57 }
58 58
59 # Upload the given symbol file to given URL. 59 # Upload the given symbol file to given URL.
60 function upload_file() { 60 function upload_file() {
61 local upload_file="$1" 61 local upload_file="$1"
62 local upload_url="$2" 62 local upload_url="$2"
63 if [ ${FLAGS_verbose} -eq ${FLAGS_TRUE} ]; then 63 if [ ${FLAGS_verbose} -eq ${FLAGS_TRUE} ]; then
64 info "Uploading ${upload_file}" 64 info "Uploading ${upload_file}"
65 fi 65 fi
66 if ! "${SYM_UPLOAD}" "${upload_file}" "${upload_url}" > /dev/null \ 66 "${SYM_UPLOAD}" "${upload_file}" "${upload_url}" > "${OUT_DIR}/stdout" \
67 2> "${ERR_FILE}"; then 67 2> "${OUT_DIR}/stderr"
68 if ! grep -q "Successfully sent the symbol file." "${OUT_DIR}/stdout"; then
68 error "Unable to upload symbols in ${upload_file}:" 69 error "Unable to upload symbols in ${upload_file}:"
69 cat "${ERR_FILE}" 70 cat "${OUT_DIR}/stderr"
70 ANY_ERRORS=1 71 ANY_ERRORS=1
71 return 1 72 return 1
72 fi 73 fi
73 if [ ${FLAGS_verbose} -eq ${FLAGS_TRUE} ]; then 74 if [ ${FLAGS_verbose} -eq ${FLAGS_TRUE} ]; then
74 size=$(wc -c "${upload_file}" | cut -d' ' -f1) 75 size=$(wc -c "${upload_file}" | cut -d' ' -f1)
75 info "Successfully uploaded ${size}B." 76 info "Successfully uploaded ${size}B."
76 fi 77 fi
77 return 0 78 return 0
78 } 79 }
79 80
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 done 132 done
132 else 133 else
133 error "Unexpected args ${FLAGS_ARGV}" 134 error "Unexpected args ${FLAGS_ARGV}"
134 fi 135 fi
135 136
136 [ ${ANY_ERRORS} -ne 0 ] && die "Encountered problems" 137 [ ${ANY_ERRORS} -ne 0 ] && die "Encountered problems"
137 return 0 138 return 0
138 } 139 }
139 140
140 main "$@" 141 main "$@"
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