#!/bin/bash # -------------- # llxcfg-listvars # -------------- # # Utilidad para listar variables, valores, ficheros de variables ... o todo a la vez. # # Escrito por Luis Garcia Gisbert para LliureX (Mayo 2006) # set -e PATH="/usr/sbin:/usr/bin:/sbin:/bin" # VARIABLES CONFFILE="/etc/llxcfg/llxcfg.conf" VARS_FILENAME="10_llxcfg_setvars" # funciones # --------- exit_message(){ echo "$1" >&2 exit 1 } usage(){ exit_message "$0 {--files|--names|--values|--info} [VARNAME_1 ... VARNAME_N]" } parse_option(){ OPTION=" --[[:alpha:]]+ " RET_VALUE="" if `echo " $@ " |grep -q " --[[:alpha:]]\+ "` ; then RET_VALUE=`echo " $@ " |sed -ne "s%^.* --\([[:alpha:]]\+\) .*\$%\1%p"` fi echo "${RET_VALUE}" } num_values(){ echo $# } # MAIN PROGRAM VARS_LIB_FILE="/usr/sbin/llxcfg-vars.sh" [ -e ${VARS_LIB_FILE} ] || exit_message "Missing variable library file ${VARS_LIB_FILE}!!" . ${VARS_LIB_FILE} # Initial test llxcfg_vars_test_CONFDIRS || exit_message "Variables directory path error !!" # Procesa opciones OPTION_FILTER=`parse_option "$1"` VAR_LIST="" if [ "$OPTION_FILTER" ]; then shift fi VAR_LIST="$@" case "$OPTION_FILTER" in files) if [ -z "$VAR_LIST" ]; then llxcfg_vars_files else FILE_LIST=`llxcfg_vars_files` (for v in $VAR_LIST; do grep -l -e "^[[:blank:]]*${v}[[:blank:]]*=" ${FILE_LIST} || true; done ) | sort -u fi ;; names) if [ -z "$VAR_LIST" ]; then llxcfg_vars_names else sed_rules=";" for v in $VAR_LIST; do sed_rules="${sed_rules}/^${v}\$/p;" done llxcfg_vars_names |sed -ne "${sed_rules}" fi ;; info) [ "$VAR_LIST" ] || VAR_LIST=`llxcfg_vars_names` llxcfg_vars_info $VAR_LIST ;; values) [ "$VAR_LIST" ] || VAR_LIST=`llxcfg_vars_names` llxcfg_vars_show "`llxcfg_vars_files`" $VAR_LIST |sort -t = -k 1 ;; *) usage ;; esac exit 0