#!/usr/bin/sh
#----------------------------------------------------------------------------
# /var/install/bin/pre-setup-system-logging-logfileview-menu
#
# Creation: 2011-05-08 hbfl
# Last Update: $Id$
#
# Copyright (c) 2011-@@YEAR@@ the eisfair team, team(at)eisfair(dot)org
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#----------------------------------------------------------------------------
. /var/install/include/eislib
. /etc/config.d/syslogd
# ---------------------------------------------------------------------------
# get logfile target from syslogd config file
# ---------------------------------------------------------------------------
get_logfile_entry()
{
show_target=''
separator=''
# build target list in $logfiles
idx=1
while [ ${idx} -le ${SYSLOGD_DEST_N:-0} ]
do
eval active='${SYSLOGD_DEST_'${idx}'_ACTIVE}'
if [ "${active}" != "yes" ]
then
idx=$((${idx} + 1))
continue
fi
eval target='${SYSLOGD_DEST_'${idx}'_TARGET}'
# check for @IP-address values
if ! echo "${target}" | grep -q '^@'
then
# check for devices like /dev/console
if ! echo "${target}" | grep -q '^/dev/'
then
show_target="${show_target}${separator}${target}"
separator=" "
fi
fi
idx=$((${idx} + 1))
done
}
# ---------------------------------------------------------------------------
# create logfile view entry
# ---------------------------------------------------------------------------
create_logfile_view_menu()
{
{
for l_file in ${show_target}
do
l_mesg=$(basename "${l_file}")
l_file=$(echo "${l_file}" | sed 's#\*#\\\*#g')
echo ""View ${l_mesg}""
echo "
"
done
} >> ${menu_file}
}
# ---------------------------------------------------------------------------
# createn logfile view header
# ---------------------------------------------------------------------------
create_logfile_view_menu_header()
{
{
echo "Logfile view"
echo "${package}"
echo ""
echo ""
} > ${menu_file}
chmod 0640 ${menu_file}
}
# ---------------------------------------------------------------------------
# create sub logfile menu
# ---------------------------------------------------------------------------
create_sub_logfile_view_menu()
{
for l_file in ${show_target}
do
l_dir=$(dirname "${l_file}")
l_mesg=$(basename "${l_file}")
fields=$((1 + $( echo ${l_mesg} | awk -F. '{ print NF }')))
l_file=$(echo "${l_mesg}" | sed 's#\*#\\\*#g')
logfiles=$(find ${l_dir} -maxdepth 1 -name "${l_file}.*" |
sort -t. -n -k${fields})
logfiles=$(echo "${logfiles}" | sed 's#\*#\\\*#g')
{
echo "Logfile ${l_mesg} view"
echo "${package}"
echo ""
echo ""
for t_file in ${logfiles}
do
t_mesg=$(basename "${t_file}")
t_file=$(echo "${t_file}" | sed 's#\*#\\\*#g')
echo ""View ${t_mesg}""
done
} > /var/install/menu/setup.system.logging.${sub_package}${sub_menue_delimeter}logfileview.${l_mesg}.menu
chmod 0640 /var/install/menu/setup.system.logging.${sub_package}${sub_menue_delimeter}logfileview.${l_mesg}.menu
done
}
# ---------------------------------------------------------------------------
# main
# ---------------------------------------------------------------------------
main()
{
sub_package=''
sub_menue_delimeter=''
sub_file_delimeter=''
package="${2}"
menu_file="${4}"
if [ "${package}" = "syslogd" ]
then
sub_package="${package}"
sub_menue_delimeter='.'
sub_file_delimeter='-'
fi
if [ "${START_SYSLOGD}" = "yes" ]
then
get_logfile_entry
create_logfile_view_menu_header
create_logfile_view_menu
create_sub_logfile_view_menu
else
create_logfile_view_menu_header
mecho
mecho --warn "START_SYSLOGD => no"
mecho
anykey
fi
}
# ---------------------------------------------------------------------------
# exec main
# ---------------------------------------------------------------------------
main "${@}"
# ---------------------------------------------------------------------------
# end
# ---------------------------------------------------------------------------