-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdo_install
executable file
·140 lines (124 loc) · 3.36 KB
/
do_install
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!/bin/sh
# $1 = implpath
# installation script for UQLX
IMPL_PATH=$1
if [ -z "$IMPL_PATH" ] ; then
echo "syntax: $0 IMPL_PATH"
exit 1
fi
# prefer files in $HOME/lib/uqlx if existing
if [ -d "$HOME/lib/uqlx" ] ; then
IMPL_PATH="$HOME/lib/uqlx"
fi
# some fallback values
if [ ! -d "$IMPL_PATH" ] ; then
if [ -d /usr/local/lib/uqlx ] ; then
IMPL_PATH=/usr/local/lib/uqlx
elif [ -d /usr/lib/uqlx ] ; then
IMPL_PATH=/usr/lib/uqlx
elif [ -d $HOME/lib/uqlx ] ; then
IMPL_PATH=$HOME/lib/uqlx
fi
fi
# various helper functions
#
confirm()
{
echo "$1"
while true ; do
read ans
case $ans in
y) return 0;;
n) return 1;;
*) echo "Please answer 'y' or 'n'"
esac
done
}
sys_guess_floppy()
{
XOS=`uname`
XOSREL=`uname -r`
case $XOS in
*Linux*|*linux*)
echo "/dev/fd0";;
SunOS)
if [ "$OSTYPE" = "solaris" ] ; then
echo "/vol/dev/aliases/floppy0"
else
echo "/dev/rfd0"
fi
;;
*) echo "don't know default name for floppy on $XOS" 1>2
echo "" ;;
esac
}
# addentry: key , complete value, command if added
# if key in OUTFILE ask confirmation and remove old line,
# otherwise just add value and execute command
addentry()
{
if [ -f $OUTFILE ] ; then
old_val=`grep $1 $OUTFILE`
if [ -n "$old_val" ] ; then
confirm "replace $old_val with $2 ?" || return
grep -v $1 $OUTFILE >${OUTFILE}.new; mv ${OUTFILE}.new $OUTFILE
fi
fi
echo "$2" >> $OUTFILE
[ -n "$3" ] && `$3`
}
second()
{
echo "$2"
}
setup_filesystems()
{
addentry MDV1 "DEVICE = MDV1,$HOME/mdv1/,qdos-like" "mkdir -p $HOME/mdv1"
if [ -d $HOME/mdv1 ] ; then
[ -f $HOME/mdv1/BOOT ] || cp $IMPL_PATH/BOOT.test $HOME/mdv1/BOOT
fi
addentry MDV2 "DEVICE = MDV2,$HOME/mdv2/,qdos-like" "mkdir -p $HOME/mdv2"
addentry WIN1 "DEVICE = WIN1,$HOME"
floppy=`sys_guess_floppy`
[ -n "$floppy" ] &&
addentry FLP1 "DEVICE = FLP1,$floppy,qdos-fs"
addentry RAM1 "DEVICE = RAM1,/tmp/.ram1-%x,clean,qdos-like"
addentry RAM2 "DEVICE = RAM2,/tmp/.ram2-%x,clean,qdos-like"
addentry RAM8 "DEVICE = RAM8,/tmp/.ram8-%x,clean,qdos-like"
[ -n "`grep cdrom /etc/fstab`" ] &&
cdrom=`grep cdrom /etc/fstab`
cdrom=`second $cdrom`
[ -z "$cdrom" -a -d /dev/cdrom ] && cdrom=/cdrom
[ -n "$cdrom" ] && addentry CD1 "DEVICE = CD1,$cdrom"
}
setup_roms()
{
addentry ROMDIR "ROMDIR = $IMPL_PATH/romdir"
addentry SYSROM "SYSROM = js_rom"
addentry ROMIM "ROMIM = tk2_ext,0xc000"
[ -f $IMPL_PATH/romdir/tk2_ext ] ||
echo "$IMPL_PATH/romdir/tk2_ext not found, you need to install your own TK2"
[ -f $IMPL_PATH/romdir/minerva_rom ] || ln -s $IMPL_PATH/romdir/min.189 $IMPL_PATH/romdir/minerva_rom
}
setup_ram()
{
addentry RAMTOP "RAMTOP = 4096"
}
setup_other()
{
addentry PRINT "PRINT = lpr"
addentry CPU_HOG "CPU_HOG = 0"
addentry XKEY_ALT "#XKEY_ALT = Mode_switch # use this to have AltGr as QDOS altkey"
addentry FAST_STARTUP "FAST_STARTUP = 1 "
}
## here is the main stuff
OUTFILE=$HOME/.uqlxrc
if [ -f $OUTFILE ] ; then
confirm "Overwrite existing $OUTFILE ?" || exit
fi
[ -f $OUTFILE ] || echo -e "# Automaticaly generated configuration\n# See ${IMPL_PATH}.uqlxrc for more examples\n" >$OUTFILE
setup_roms
setup_ram
setup_other
setup_filesystems
echo -e "***********\nCreated $OUTFILE, see manual for more details\n***********"