mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # function zfanon {
 | |
| 
 | |
| emulate -L zsh
 | |
| 
 | |
| local opt optlist once
 | |
| 
 | |
| while [[ $1 = -* ]]; do
 | |
|   if [[ $1 = - || $1 = -- ]]; then
 | |
|     shift;
 | |
|     break;
 | |
|   fi
 | |
|   optlist=${1#-}
 | |
|   for (( i = 1; i <= $#optlist; i++)); do
 | |
|     opt=$optlist[$i]
 | |
|     case $optlist[$i] in
 | |
|       1) once=1
 | |
| 	 ;;
 | |
|       *) print option $opt not recognised >&2
 | |
| 	 ;;
 | |
|     esac
 | |
|   done
 | |
|   shift
 | |
| done
 | |
| 
 | |
| if [[ -z $EMAIL_ADDR ]]; then
 | |
|   # Exercise in futility.  There's a poem by Wallace Stevens
 | |
|   # called something like `N ways of looking at a blackbird',
 | |
|   # where N is somewhere around 0x14 to 0x18.  Now zftp is
 | |
|   # ashamed to prsent `N ways of looking at a hostname'.
 | |
|   local domain host
 | |
|   # First, maybe we've already got it.  Zen-like.
 | |
|   if [[ $HOST = *.* ]]; then
 | |
|     # assume this is the full host name
 | |
|     host=$HOST
 | |
|   elif [[ -f /etc/resolv.conf ]]; then
 | |
|     # Next, maybe we've got resolv.conf.
 | |
|     domain=$(awk '/domain/ { print $2 }' /etc/resolv.conf)
 | |
|     [[ -n $domain ]] && host=$HOST.$domain
 | |
|   fi
 | |
|   # Next, maybe we've got nlsookup.  May not work on LINUX.
 | |
|   [[ -z $host ]] && host=$(nslookup $HOST | awk '/Name:/ { print $2 }')
 | |
|   if [[ -z $host ]]; then
 | |
|     # we're running out of ideas, but this should work.
 | |
|     # after all, i wrote it...
 | |
|     # don't want user to know about this, too embarrassed.
 | |
|     local oldvb=$ZFTP_VERBOSE oldtm=$ZFTP_TMOUT
 | |
|     ZFTP_VERBOSE=
 | |
|     ZFTP_TMOUT=5
 | |
|     if zftp open $host >& /dev/null; then
 | |
|       host=$ZFTP_HOST
 | |
|       zftp close $host
 | |
|     fi
 | |
|     ZFTP_VERBOSE=$oldvb
 | |
|     ZFTP_TMOUT=$oldtm
 | |
|   fi
 | |
|   if [[ -z $host ]]; then
 | |
|     print "Can't get your hostname.  Define \$EMAIL_ADDR by hand."
 | |
|     return 1;
 | |
|   fi
 | |
|   EMAIL_ADDR="$USER@$host"
 | |
|   print "Using $EMAIL_ADDR as anonymous FTP password."
 | |
| fi
 | |
| 
 | |
| if [[ $once = 1 ]]; then
 | |
|   zftp open $1 anonymous $EMAIL_ADDR
 | |
| else
 | |
|   zftp params $1 anonymous $EMAIL_ADDR
 | |
|   zftp open
 | |
| fi
 | |
| # }
 |