#---------------------------------------------------------------------------- # /_ADMIN/eislerlib - library for eisfair _ADMIN/ scripts # # Creation : 2007-09-03 hbfl # Last Update: $Id$ # # Copyright (c) 2007-2012 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 the following sub functions # # to create *eislists # get_package_folder_number # create_package_subfolder # set_package_right # # # text_color [--info, --warn, --std] # clearhome # anykey # gotoyx # refresh_screensize # second_question # is_numeric # first_question # parse_info_file # # # give datestamps # pdate=$(date +%Y-%m-%d) ptime=$(date +%H:%M) pyear=$(date +%Y) ECHO=/bin/echo EXPR=/usr/bin/expr # --------------------------------------------------------------------------- # sub: get package folder number # --------------------------------------------------------------------------- get_package_folder_number() { folder_number=$(cat folder-counter) ${EXPR} ${folder_number} + 1 >folder-counter } # --------------------------------------------------------------------------- # sub: create package subfolder # --------------------------------------------------------------------------- create_package_subfolder () { mkdir -p ${folder_number} chmod -f 0775 ${folder_number} chgrp -f fleis ${folder_number} } # --------------------------------------------------------------------------- # sub: set package right # --------------------------------------------------------------------------- set_package_right () { chmod -f 0664 ${folder_number}/* chgrp -f fleis ${folder_number}/* } # --------------------------------------------------------------------------- # sub: clrhome # --------------------------------------------------------------------------- clrhome () { ${ECHO} -e "\033[H\033[2J\c" } # --------------------------------------------------------------------------- # sub: anykey # --------------------------------------------------------------------------- anykey () { ${ECHO} -n "Press ENTER to continue" read dummy } # --------------------------------------------------------------------------- # sub: text color # --------------------------------------------------------------------------- text_color () { case ${1} in --std|-std) ${ECHO} -e "\033[0m\c"; ;; --info|-info) # green ${ECHO} -e "\033[32m\c"; ;; --warn|-warn) # yellow ${ECHO} -e "\033[33m\033[1m\c"; ;; esac } # --------------------------------------------------------------------------- # sub: goto y x # --------------------------------------------------------------------------- gotoyx () { ${ECHO} -e "\033[$1;$2H\c"; } # --------------------------------------------------------------------------- # sub: refresh screensize # --------------------------------------------------------------------------- refresh_screensize () { eval $(/usr/bin/resize 2>/dev/null) _EISLIB_SCREENSIZE_X="${COLUMNS:=$_EISLIB_SCREENSIZE_X_MIN}" _EISLIB_SCREENSIZE_Y="${LINES:=$_EISLIB_SCREENSIZE_Y_MIN}" } # --------------------------------------------------------------------------- # sub: second question # --------------------------------------------------------------------------- second_question () { text_color -warn ${ECHO} -n "Please answer (1-${max_list}, ENTER=Return, 0=Exit)! " text_color -std } # --------------------------------------------------------------------------- # sub: is_numeric # check if numeric value # input : $1 - value # return: 0 - numeric # 1 - no numeric # --------------------------------------------------------------------------- is_numeric () { echo "${1}" | grep -q '^[0-9]*$' } # --------------------------------------------------------------------------- # sub: first question # --------------------------------------------------------------------------- first_question () { refresh_screensize echo echo echo echo gotoyx $(${EXPR} "${_EISLIB_SCREENSIZE_Y}" - 3) 1 echo # set info line to screen is $max_list + 6 -gt $LINES if [ ${_EISLIB_SCREENSIZE_Y} -lt $(${EXPR} "${max_list}" + 6) ] then text_color -info echo "Use SHIFT + PAGE-UP to scroll up" text_color -std else echo fi ${ECHO} -n "Select (1-${max_list}, ENTER=Return, 0=Exit)? " } # --------------------------------------------------------------------------- # sub: parse info file # --------------------------------------------------------------------------- parse_info_file () { FNAME="${1}" _pkg_name='' _pkg_short='' _pkg_date='' _pkg_version='' _pkg_status='' _pkg_section='' _pkg_system='' while read a do case "${a}" in ""*) _pkg_name=$(echo "${a}" | sed 's###g') ;; ""*) _pkg_short=$(echo "${a}" | sed 's###g') ;; ""*) _pkg_date=$(echo "${a}" | sed 's###g') ;; ""*) _pkg_version=$(echo "${a}" | sed 's###g') _pkg_version_index=$(echo "${a}" | sed 's###g') # change for eisman # _pkg_version_index=$(echo "${a}" | sed -e 's#\([0-9\.]*\).*#\1#') ;; ""*) _pkg_status=$(echo "${a}" | sed 's###g') ;; "
"*) _pkg_section=$(echo "${a}" | sed 's###g') ;; ""*) # select the system to install from package _package_system="$(echo "${a}" | sed 's###g; s# #-#')" if [ -z "${_pkg_system}" ] then _pkg_system=${_package_system} else # check if '_package_system' includet in '_pkg_system' if ! $(echo "${_pkg_system}" | grep -q "${_package_system}") then _pkg_system="${_pkg_system};"${_package_system} fi fi ;; esac done <${FNAME} # set the default 'eisfair-1' if [ -z "${_pkg_system}" ] then _pkg_system="eisfair-1" fi } # --------------------------------------------------------------------------- # end # ---------------------------------------------------------------------------