Updated Russian translation.
[midnight-commander.git] / src / vfs / extfs / helpers / hp48+.in
blobb67fce5099386e960483366e64f36584fab91c90
1 #!/bin/sh
3 # Written by Christofer Edvardsen <ce@earthling.net>, Feb 1998
5 # This script makes it possible to view and copy files to/from a hp48
6 # (tested with a HP48G and the emulator x48)
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:"
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"
27 hp48_cmd()
29 $KERMIT -C "SET EXIT WARNING OFF,REMOTE $1,QUIT"
32 hp48_cd()
34 (echo SET EXIT WARNING OFF;echo REMOTE HOST HOME
35 for HP48_DIR in `echo "$1" | tr '/' ' '`;do
36 if [ "x$HP48_DIR" != "x." ];then echo REMOTE HOST "$HP48_DIR"; fi
37 done
38 echo QUIT)| $KERMIT -B >/dev/null
41 hp48_retdir()
43 echo "$1"
46 hp48_retsize()
48 printf "%d" "$2" 2>/dev/null
51 hp48_parser()
53 HP48_DIRS=
54 read -r INPUT
55 while [ "x$INPUT" != "xEOF" ]
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 -r INPUT
63 done
64 for HP48_DIR in $HP48_DIRS;
65 do
66 HP48_PDIR="$HP48_CDIR"
67 HP48_CDIR="$HP48_CDIR/$HP48_DIR"; hp48_cmd "HOST $HP48_DIR" >/dev/null
68 hp48_list
69 HP48_CDIR="$HP48_PDIR"; hp48_cmd "HOST UPDIR" >/dev/null
70 done
73 hp48_list()
75 { hp48_cmd "DIRECTORY"; echo; echo EOF; } | hp48_parser
78 # override any locale for dates
79 LC_ALL=C
80 export LC_ALL
82 case "$1" in
83 list) HP48_CDIR=
84 hp48_cmd "HOST HOME" >/dev/null
85 hp48_list
86 exit 0;;
87 copyout)
88 cd "`dirname "$4"`"
89 hp48_cd "`dirname "$3"`"
90 $KERMIT -B -g "`basename "$3"`" -a "$4" >/dev/null
91 exit 0;;
92 copyin)
93 cd "`dirname "$4"`"
94 hp48_cd "`dirname "$3"`"
95 $KERMIT -B -s "$4" -a "`basename "$3"`" >/dev/null
96 exit 0;;
97 esac
98 exit 1