#!/usr/bin/sh #---------------------------------------------------------------------------- # /var/install/bin/sn-log # # Creation: 2013-12-21 hb # Last Update: $Id$ # # Copyright (c) 2013-@@YEAR@@ Holger Bruenjes, holgerbruenjes(at)gmx(dot)net # # 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. #---------------------------------------------------------------------------- # include eislib . /var/install/include/eislib . /var/lib/sn/sn.info color='' frame='' if $(grep -qE "^MENU=['\"]/var/install/bin/show-menu['\"]" /etc/config.d/setup) then color='--nocolor' frame='--noframe' fi # --------------------------------------------------------------------------- # get logs # --------------------------------------------------------------------------- get_logs() { # strip number and extension log_files="${1%%.*}" # check log files exists if ${prime:-false} then # select all prime log files log_file=$(ls -1 | sed 's#.*log\.##; s#\..*$##' | sort -u) elif ! ${prime:-false} then # select all logfiles from prime file log_file=$(ls log.${log_files}* | sed 's#log\.##') log_files='' fi n=0 for i in ${log_file} do n=$((${n} + 1)) eval log_${n}='"${i}"' done if [ "${n}" -eq 0 ] then mecho --warn "No logfiles available." anykey exit 0 fi } # --------------------------------------------------------------------------- # select log # --------------------------------------------------------------------------- select_log() { cd ${SN_LOG_DIR} if ${prime:-false} then # select all prime log files get_logs fi while [ 1 ] do SN_TITLE="Following log(s) available" SN_FLAGS='--indent 12 --spread' SN_COLS='60*' SN_ROWS=0 export SN_TITLE export SN_FLAGS export SN_COLS while [ "${SN_ROWS}" -ne "${n}" ] do SN_ROWS=$((${SN_ROWS} + 1)) eval SN_${SN_ROWS}_1=\"'${log_'${SN_ROWS}'}'\" export SN_${SN_ROWS}_1 export SN_ROWS done SN_QUESTION='Select' export SN_QUESTION ask_tmpfile=$(${MKTEMP} -t XXXXXXXXXXXXX) ${CHOOSE} SN 1 > ${ask_tmpfile} rc=${?} read answer < ${ask_tmpfile} rm -f ${ask_tmpfile} # if ask break, ask returned 255 if [ ${rc} = 255 ] then answer=0 fi if ${prime:-false} then case "${answer}" in '') exit 0 ;; 0) exit 127 ;; *) eval sn_log='${log_'${answer}'}' prime=false get_logs ${sn_log} ;; esac elif ! ${prime:-false} then case "${answer}" in '') prime=true get_logs ;; 0) exit 127 ;; *) eval sn_log='${log_'${answer}'}' show_log ${sn_log} # select all logfiles from prime file get_logs ${sn_log} ;; esac fi done } # --------------------------------------------------------------------------- # show log # --------------------------------------------------------------------------- show_log() { log_file="log.${1}" ${SHOW_DOC} $color $frame --follow --title ${log_file} ${log_file} } # --------------------------------------------------------------------------- # main # --------------------------------------------------------------------------- main() { prime=true select_log exit 0 } # --------------------------------------------------------------------------- # exec main # --------------------------------------------------------------------------- main "${@}" # --------------------------------------------------------------------------- # end # ---------------------------------------------------------------------------