Createrpk.sh
Jump to navigation
Jump to search
#!/bin/bash
# Procedure to build layout file and to pack the rpk
layout() {
# P1 is a marker; cat is used here to copy the contents between the P1 markers to a file
cat > layout.xml << P1
<?xml version="1.0" encoding="utf-8"?>
<romset version="1.0">
<resources>
P1
if [ -f $1"g.bin" ]
then
cat >> layout.xml << P2
<rom id="gromimage" file="$1g.bin"/>
P2
fi
if [ -f $1"c.bin" ]
then
cat >> layout.xml << P3
<rom id="romimage" file="$1c.bin"/>
P3
fi
if [ -f $1"d.bin" ]
then
cat >> layout.xml << P4
<rom id="rom2image" file="$1d.bin"/>
P4
fi
if [ $2 = "minimem" ]
then
cat >> layout.xml << P5
<ram id="bufferedram" file="$1.nv" type="persistent" length="4096"/>
P5
fi
if [ $2 = "mbx" ]
then
cat >> layout.xml << P6
<ram id="bufferedram" file="$1.nv" type="persistent" length="1024"/>
P6
fi
cat >> layout.xml << P7
</resources>
<configuration>
<pcb type="$2">
P7
if [ -f $1"g.bin" ]
then
cat >> layout.xml << P8
<socket id="grom_socket" uses="gromimage"/>
P8
fi
if [ -f $1"c.bin" ]
then
cat >> layout.xml << P9
<socket id="rom_socket" uses="romimage"/>
P9
fi
if [ -f $1"d.bin" ]
then
cat >> layout.xml << P10
<socket id="rom2_socket" uses="rom2image"/>
P10
fi
if [ -f $1"m.bin" -o -f $1"b.bin" ]
then
cat >> layout.xml << P11
<socket id="ram_socket" uses="bufferedram"/>
P11
fi
cat >> layout.xml << P12
</pcb>
</configuration>
</romset>
P12
echo Creating $1.rpk
zip -m $1.rpk layout.xml $1?.bin
}
for myfile in *g.bin
do
ismbx=`grep -q "MBX CONSOLE" $myfile; echo $?`
ismini=`grep -q "MINI MEMORY" $myfile; echo $?`
# cut off the suffix including g
part=${myfile%%g.bin}
# if there is a file called (what is left)c.bin...
if [ -f $part"c.bin" ]
then
if [ -f $part"d.bin" ]
then
layout $part paged
else
if [ $ismini -eq 0 ]
then
layout $part minimem
else
if [ $ismbx -eq 0 ]
then
layout $part mbx
else
layout $part standard
fi
fi
fi
else
if [ $ismbx -eq 0 ]
then
layout $part mbx
else
layout $part standard
fi
fi
done
# See what's left
for myfile in *c.bin
do
part=${myfile%%c.bin}
ismbx=`grep -q "MBX CONSOLE" $myfile; echo $?`
if [ -f $part"d.bin" ]
then
layout $part paged
else
if [ $ismbx -eq 0 ]
then
layout $part mbx
else
layout $part standard
fi
fi
done