diff options
Diffstat (limited to 'Functions/Zftp/zfstat')
-rw-r--r-- | Functions/Zftp/zfstat | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Functions/Zftp/zfstat b/Functions/Zftp/zfstat new file mode 100644 index 000000000..0ca755d03 --- /dev/null +++ b/Functions/Zftp/zfstat @@ -0,0 +1,89 @@ +# function zfstat { +# Give a zftp status report using local variables. +# With option -v, connect to the remote host and ask it what it +# thinks the status is. + +setopt localoptions unset +unsetopt ksharrays + +local i stat=0 opt optlist verbose + +while [[ $1 = -* ]]; do + if [[ $1 = - || $1 = -- ]]; then + shift; + break; + fi + optlist=${1#-} + for (( i = 1; i <= $#optlist; i++)); do + opt=$optlist[$i] + case $opt in + v) verbose=1 + ;; + *) print option $opt not recognised >&2 + ;; + esac + done + shift +done + +if [[ -n $ZFTP_HOST ]]; then + print "Host:\t\t$ZFTP_HOST" + print "IP:\t\t$ZFTP_IP" + [[ -n $ZFTP_SYSTEM ]] && print "System type:\t$ZFTP_SYSTEM" + if [[ -n $ZFTP_USER ]]; then + print "User:\t\t$ZFTP_USER " + [[ -n $ZFTP_ACCOUNT ]] && print "Account:\t$AFTP_ACCOUNT" + print "Directory:\t$ZFTP_PWD" + print -n "Transfer type:\t" + if [[ $ZFTP_TYPE = "I" ]]; then + print Image + elif [[ $ZFTP_TYPE = "A" ]]; then + print Ascii + else + print Unknown + fi + print -n "Transfer mode:\t" + if [[ $ZFTP_MODE = "S" ]]; then + print Stream + elif [[ $ZFTP_MODE = "B" ]]; then + print Block + else + print Unknown + fi + else + print "No user logged in." + fi +else + print "Not connected." + [[ -n $zflastsession ]] && print "Last session:\t$zflastsession" + stat=1 +fi + +# things which may be set even if not connected: +[[ -n $ZFTP_REPLY ]] && print "Last reply:\t$ZFTP_REPLY" +print "Verbosity:\t$ZFTP_VERBOSE" +print "Timeout:\t$ZFTP_TMOUT" +print -n "Preferences:\t" +for (( i = 1; i <= ${#ZFTP_PREFS}; i++ )); do + case $ZFTP_PREFS[$i] in + [pP]) print -n "Passive " + ;; + [sS]) print -n "Sendport " + ;; + [dD]) print -n "Dumb " + ;; + *) print -n "$ZFTP_PREFS[$i]???" + esac +done +print + +if [[ -n $ZFTP_HOST && $verbose = 1 ]]; then + zfautocheck -d + print "Status of remote server:" + # make sure we print the reply + local ZFTP_VERBOSE=045 + zftp quote STAT +fi + +return $stat +# } |