plan9fox/rc/bin/map
2011-03-30 18:29:07 +00:00

103 lines
1.5 KiB
Bash
Executable file

#!/bin/rc
rfork en
# F FEATUREs, M map files, A other arguments
FEATURE=no
if (~ $MAPPROG '')
MAPPROG=/bin/aux/mapd
if (~ $MAPDIR '')
MAPDIR=/lib/map
F=(); M=(); A=();
for (i) {
switch ($FEATURE) {
case no
switch ($i) {
case -f
FEATURE=yes
F=($F)
case *
A=($A $i)
}
case yes
switch ($i) {
case -f
case -*
A=($A $i)
FEATURE=no
case riv*2
F=($F 201 202)
case riv*3
F=($F 201 202 203)
case riv*4
F=($F 201 202 203 204)
case riv*
F=($F 201)
case iriv*2
F=($F 206 207)
case iriv*[34]
F=($F 206 207 208)
case iriv*
F=($F 206)
case coast*2 shore*2 lake*2
F=($F 102)
case coast*3 shore*3 lake*3
F=($F 102 103)
case coast*4 shore*4 lake*4
F=($F 102 103 104)
case coast* shore* lake*
case ilake*[234] ishore*[234]
F=($F 106 107)
case ilake* ishore*
F=($F 106)
case reef*
F=($F 108)
case canal*2
F=($F 210 211)
case canal*[34]
F=($F 210 211 212)
case canal*
F=($F 210)
case glacier*
F=($F 115)
case state* province*
F=($F 401)
case countr*2
F=($F 301 302)
case countr*[34]
F=($F 301 302 303)
case countr*
F=($F 301)
case salt*[234]
F=($F 109 110)
case salt*
F=($F 109)
case ice*[234] shel*[234]
F=($F 113 114)
case ice* shel*
F=($F 113)
case *
echo map: unknown feature $i >[1=2]
exits "unknown feature"
}
}
}
for (j in $F) {
if (test -r $MAPDIR/$j)
M=($M $MAPDIR/$j)
}
if (~ $F ?*) {
if (test -r $MAPDIR/101)
M=(101 $M)
M=(-m $M)
}
if (~ $MAP '')
MAP=world
MAP=$MAP MAPDIR=$MAPDIR $MAPPROG $A $M