ftp://ftp.redhat.com/pub/redhat/linux/rawhide/SRPMS/SRPMS/gnome-vfs2-2.3.8-1.src.rpm
[gnome-vfs-httpcaptive.git] / modules / extfs / hp48
1 #!/bin/sh
2 #
3 # Written by Christofer Edvardsen <ce@earthling.net>, Feb 1998
4 #
5 # This script makes it possible to view and copy files to/from a hp48
6 # (tested with a HP48G and the emulator x48)
7 #
8 # To use the hp48 external filesystem:
9 #      - read the relevant parts of your HP48 manual
10 #      - install kermit
11 #      - connect the HP48 to your computer or start x48
12 #      - below change the line which reflects the serial device you use
13 #      - configure your HP48 (<left shift> - i/o - iopar): 
14 #        port: wire
15 #        baud: 9600 
16 #        transfer format: binary (fast transfers) or
17 #                         ascii (editable on the pc)
18 #      - start the server on the HP48: <left shift> - i/o - srvr - serve
19 #        or the shortcut <right shift> - <right arrow>
20 #      - on MC's commandline enter "cd hp48:"
21 #
22 # Make sure you have kermit installed and that it's using the right serial
23 # device by changing /dev/ttyXX on the next line
24 AWK=awk
25 KERMIT="kermit -l /dev/ttyS1 -b 9600"
26
27 hp48_cmd()
28 {
29 $KERMIT -C "SET EXIT WARNING OFF,REMOTE $*,QUIT"
30 }
31
32 hp48_cd()
33 {
34 (echo SET EXIT WARNING OFF;echo REMOTE HOST HOME
35 for HP48_DIR in `echo $*|tr '/' ' '`;do
36  if [ "$HP48_DIR" != "." ];then echo REMOTE HOST $HP48_DIR;fi
37 done
38 echo QUIT)| $KERMIT -B >/dev/null
39 }
40
41 hp48_retdir()
42 {
43 echo $1
44 }
45
46 hp48_retsize()
47 {
48 printf "%d" $2 2>/dev/null
49 }
50
51 hp48_parser()
52 {
53 HP48_DIRS=
54 read INPUT
55 while [ "$INPUT" != "EOF" ]
56 do
57     case `echo $INPUT | @AWK@ '{if (int($2)) if ($3=="Directory") print "dir";else print "file"}'` in
58     dir) HP48_DIRS="$HP48_DIRS `hp48_retdir $INPUT`"
59     printf "drwxr-xr-x   1 %-8d %-8d %8d %s %s\n" 0 0 `hp48_retsize $INPUT` "`date +\"%b %d %Y %k:%M"`" "$HP48_CDIR/`hp48_retdir $INPUT`";;
60     file) printf "-rw-r--r--   1 %-8d %-8d %8d %s %s\n" 0 0 `hp48_retsize $INPUT` "`date +"%b %d %Y %k:%M"`" "$HP48_CDIR/`hp48_retdir $INPUT`";;
61     esac
62     read INPUT
63 done
64 for HP48_DIR in $HP48_DIRS;do 
65  HP48_PDIR=$HP48_CDIR
66  HP48_CDIR=$HP48_CDIR/$HP48_DIR; hp48_cmd HOST $HP48_DIR >/dev/null
67  hp48_list
68  HP48_CDIR=$HP48_PDIR; hp48_cmd HOST UPDIR >/dev/null
69 done
70 }
71
72 hp48_list()
73 {
74 (hp48_cmd DIRECTORY;echo;echo EOF)|hp48_parser
75 }
76
77 # override any locale for dates
78 LC_ALL=C
79 export LC_ALL
80
81 case $1 in
82 list) HP48_CDIR=
83     hp48_cmd HOST HOME >/dev/null
84     hp48_list
85     exit 0;;
86 copyout)
87     cd `dirname $4`
88     hp48_cd `dirname $3`
89     $KERMIT -B -g `basename $3` -a $4 >/dev/null
90     exit 0;;
91 copyin) 
92     cd `dirname $4`
93     hp48_cd `dirname $3`
94     $KERMIT -B -s $4 -a `basename $3` >/dev/null
95     exit 0;;
96 esac
97 exit 1