1#!/bin/bash 2# 3# Copyright (C) 2018-2022 Intel Corporation. 4# SPDX-License-Identifier: BSD-3-Clause 5# 6 7if [ $# != 13 ]; then 8 logger "Expected 13 arguments, got $#" 9 exit -1 10fi 11 12# Error Handling 13default_core_pattern_file="/var/log/crashlog/default_core_pattern" 14 15if [ ! -f $default_core_pattern_file ]; then 16 logger "File default_core_pattern doesn't exist under /var/log/crashlog" 17 exit -1 18fi 19 20# We know the parameter order 21my_order=(%E %P %u %g %s %t %c %h %e %p %i %I %d) 22my_params=($*) 23 24# An O(n^2) function to look up the value 25function get_params() 26{ 27 local ret="" 28 for args in $* 29 do 30 for index in ${!my_order[@]} 31 do 32 if [ ${my_order[${index}]} = ${args} ] 33 then 34 ret="${ret} ${my_params[${index}]}" 35 break 36 fi 37 done 38 done 39 echo ${ret} 40} 41 42# get default core_pattern parameters list 43default_content=`cat $default_core_pattern_file` 44default_params=${default_content#* } 45 46# abstract the application of the default core_pattern 47t_app=${default_content%% *} 48default_app=${t_app#*|} 49 50usercrash_var=$(get_params "%p %e %s") 51default_var=$(get_params ${default_params}) 52 53tee >(/usr/bin/usercrash_c ${usercrash_var}) | ${default_app} ${default_var} 54