The last message from tzselect states: "... use the tzselect command in shell scripts" To do so there needs to be a way to silence the dialog tail. This commit adds an -s option to facilitate that. Signed-off-by: J William Piggott <elseifthen@gmx.com> --- tzselect.ksh | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/tzselect.ksh b/tzselect.ksh index 3e8d07b..41a430f 100644 --- a/tzselect.ksh +++ b/tzselect.ksh @@ -50,11 +50,12 @@ say() { exit 1 } +script_mode=0 coord= location_limit=10 zonetabtype=zone1970 -usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] +usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] [-s] Select a time zone interactively. Options: @@ -70,7 +71,11 @@ Options: -n LIMIT Display at most LIMIT locations when -c is used (default $location_limit). - --version + -s + Silence the dialog, after the confirmation prompt is answered, to + facilitate calling tzselect from other applications. + + --version Output version information. --help @@ -146,13 +151,15 @@ else } fi -while getopts c:n:t:-: opt +while getopts sc:n:t:-: opt do case $opt$OPTARG in c*) coord=$OPTARG ;; n*) location_limit=$OPTARG ;; + s ) + script_mode=1 ;; t*) # Undocumented option, used for developer testing. zonetabtype=$OPTARG ;; -help) @@ -544,17 +551,19 @@ Raw System Clock time: $UTdate." do coord= done -case $SHELL in -*csh) file=.login line="setenv TZ '$TZ'";; -*) file=.profile line="TZ='$TZ'; export TZ" -esac +if test $script_mode -ne 1 ; then + case $SHELL in + *csh) file=.login line="setenv TZ '$TZ'";; + *) file=.profile line="TZ='$TZ'; export TZ" + esac -say >&2 " + say >&2 " You can make this change permanent for yourself by appending the line $line to the file '$file' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the $0 command in shell scripts:" +fi say "$TZ"