diff --git a/Makefile b/Makefile index 0a942367..88581561 100644 --- a/Makefile +++ b/Makefile @@ -287,6 +287,12 @@ else pagercmd := $(pager) endif +ifneq ($(loggeropts),) + loggercmd := $(logger) $(loggeropts) +else + loggercmd := $(logger) +endif + ifeq ($(color),y) setcolor := auto else @@ -396,6 +402,7 @@ sed -e 's|@prefix@|$(prefix)|g' \ -e 's|@TCLSHDIR@/tclsh|$(TCLSH)|g' \ -e 's|@TCLSH@|$(TCLSH)|g' \ -e 's|@PYTHON@|$(PYTHON)|g' \ + -e 's|@loggercmd@|$(loggercmd)|g' \ -e 's|@pagercmd@|$(pagercmd)|g' \ -e 's|@verbosity@|$(verbosity)|g' \ -e 's|@color@|$(setcolor)|g' \ diff --git a/Makefile.inc.in b/Makefile.inc.in index 8e25055c..71e9bba7 100644 --- a/Makefile.inc.in +++ b/Makefile.inc.in @@ -62,6 +62,10 @@ builddoc := @builddoc@ # able to use manpath cmd to get currently set manpath usemanpath := @usemanpath@ +# logger setup +logger := @logger@ +loggeropts := @loggeropts@ + # pager setup pager := @pager@ pageropts := @pageropts@ diff --git a/configure b/configure index 15f430c7..0c7322c8 100755 --- a/configure +++ b/configure @@ -39,11 +39,12 @@ windowssupport nearlyforbiddendays implicitrequirement tagabbrev \ tagcolorname mcookieversioncheck availoutput availterseoutput listoutput \ listterseoutput editor variantshortcut bashcompletiondir fishcompletiondir \ zshcompletiondir tcllinter tcllinteropts nagelfardatadir nagelfaraddons \ -stickypurge uniquenameloaded abortonerror sourcecache" +stickypurge uniquenameloaded abortonerror sourcecache logger loggeropts" libarglist=() # flags to know if argument has been specified on command-line defpageropts=1 +defloggeropts=1 # set argument default values prefix=/usr/local/Modules @@ -87,6 +88,8 @@ SED_ERE='sed -E' VERSION= RELEASE= initconfin=etcdir +logger='logger' +loggeropts='-t modules' pager=less pageropts='-eFKRX' verbosity=normal @@ -316,6 +319,12 @@ Optional Packages: configuration files. Either \`initdir' or \`etcdir' [etcdir] --with-tclsh=BIN name or full path of Tcl interpreter shell [tclsh] + --with-logger=BIN name or full path of default logger program to use + to log some evaluation information (can be super- + seeded at run-time by environment variable) [$logger] + --with-logger-opts=OPTLIST + settings to apply to default logger program + [$loggeropts] --with-pager=BIN name or full path of default pager program to use to paginate informational message output (can be super- seeded at run-time by environment variable) [$pager] @@ -703,6 +712,11 @@ for arg in "$@"; do fi ;; --with-tclsh=*|--without-tclsh) tclshbin=$(get_package_value "$arg") ;; + --with-logger=*|--without-logger) + logger=$(get_package_value "$arg") ;; + --with-logger-opts=*|--without-logger-opts) + loggeropts=$(get_package_value "$arg") + defloggeropts=0 ;; --with-pager=*|--without-pager) pager=$(get_package_value "$arg") ;; --with-pager-opts=*|--without-pager-opts) @@ -1025,6 +1039,18 @@ check_requirement 'basename' '' "PATH=$binsearchpath" # shellcheck disable=SC2034 BASENAME=$reqpath +# get logger program location from standard PATHs or /usr/local/bin +# or validate location passed as argument +if [ -n "$logger" ]; then + check_requirement "$logger" '' "PATH=$binsearchpath" + logger=$reqpath +fi +# adapt logger program settings dependings of specified args +if [ $defloggeropts -eq 1 ] && [ "${logger##*/}" != 'logger' ]; then + loggeropts='' + echo_warning "As chosen logger is not \`logger', default logger options are cleared" +fi + # get pager program location from standard PATHs or /usr/local/bin # or validate location passed as argument if [ -n "$pager" ]; then diff --git a/site.exp.in b/site.exp.in index af130390..93eef786 100644 --- a/site.exp.in +++ b/site.exp.in @@ -47,6 +47,13 @@ if {$install_pageropts ne {}} { append install_pagercmd " $install_pageropts" } +set install_logger "@logger@" +set install_loggeropts "@loggeropts@" +set install_loggercmd $install_logger +if {$install_loggeropts ne {}} { + append install_loggercmd " $install_loggeropts" +} + set install_verbosity "@verbosity@" set install_color "@color@" diff --git a/tcl/init.tcl.in b/tcl/init.tcl.in index 69eaa312..4c1b7dd2 100644 --- a/tcl/init.tcl.in +++ b/tcl/init.tcl.in @@ -113,7 +113,7 @@ array set g_config_defs [list\ ml {MODULES_ML @ml@ 0 b {0 1}}\ nearly_forbidden_days {MODULES_NEARLY_FORBIDDEN_DAYS @nearlyforbiddendays@\ 0 i {0 365} {} {} intbe}\ - pager {MODULES_PAGER {logger -t modules} 0 s}\ + pager {MODULES_PAGER {@pagercmd@} 0 s}\ protected_envvars {MODULES_PROTECTED_ENVVARS 0 l}\ rcfile {MODULERCFILE 0 l}\ redirect_output {MODULES_REDIRECT_OUTPUT 1 0 b {0 1}}\