Createrpk.sh

From Ninerpedia
Revision as of 22:19, 6 May 2009 by Mizapf (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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