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