#!/bin/bash # Copyright (C) 2019 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. DIR="$( cd "$(dirname "$0")" ; pwd -P )" if [[ "$#" -lt 3 ]]; then echo "Usage: $0 " >&2 exit 1 fi simulate="n" TRACE_DIRNAME="$1" SQLITE_DIRNAME="$2" OUTPUT_FILENAME="$3" echo "Trace filename: $TRACE_DIRNAME" echo "SQLite filename: $SQLITE_DIRNAME" if ! [[ -d "$TRACE_DIRNAME" ]]; then echo "Error: Trace '$TRACE_DIRNAME' does not exist." >&2 exit 1 fi process_trace_file() { local trace_filename="$1" local db_dirname="$2" local output_file="$3" local db_filename="$db_dirname/$(basename "$trace_filename").db" if [[ $simulate == y ]]; then echo "$DIR/trace_analyzer.py" "$db_filename" "$trace_filename" "> /dev/null" else if ! "$DIR/trace_analyzer.py" "$db_filename" "$trace_filename" > /dev/null; then echo "Fatal: trace_analyzer.py failed, aborting." >&2 return 1 fi fi if [[ $simulate == y ]]; then echo "$DIR/run-sql-queries" "$db_filename" ">> '$output_file'" else # append name of trace to CSV, so we can see where data came from echo "; $trace_filename" >> "$output_file" if ! "$DIR/run-sql-queries" "$db_filename" >> "$output_file"; then echo "Fatal: Failed to run sql queries, aborting." >&2 return 1 fi fi return 0 } find "$TRACE_DIRNAME" -type f -name '*.trace' -print0 | while IFS= read -r -d '' file; do if [[ $file == *#*.trace && $file != *#1.trace ]]; then echo "Skip $file" continue fi printf '%s\n' "$file" process_trace_file "$file" "$SQLITE_DIRNAME" "$OUTPUT_FILENAME" done echo "Done"