about summary refs log tree commit diff
path: root/Functions/Zftp/zfstat
blob: 0ca755d03f561f8a25b45b6e94821977927dc065 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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
# }