Advertisement
ijontichy

packagepk3.sh

Jul 31st, 2014
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.58 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. BASEDIR=$(cd $(dirname $0) && pwd)
  4. FILENAME=$(basename $BASEDIR)
  5. TESTFLAGS="-iwad doom2 +map map01"
  6.  
  7. function usage_and_exit
  8. {
  9.     BASENAME=$(basename $0)
  10.     echo "USAGE: $BASENAME [ make | package <version> | test [ gzdoom | skulltag ] [wad] ]" >&2
  11.     exit
  12. }
  13.  
  14. function makepk3
  15. {
  16.     if (("x$1" != "x"))
  17.     then
  18.         compressionlevel=0
  19.     else
  20.         compressionlevel=$1
  21.     fi
  22.  
  23.     if [ -e acc ]
  24.     then
  25.         ACCDIR="."
  26.     else
  27.         ACCDIR="${HOME}/bin"
  28.     fi
  29.  
  30.     cd $BASEDIR
  31.  
  32.     for i in `find $PWD -iname '*.svn'`
  33.     do
  34.         rm -rf $i 2>/dev/null
  35.     done
  36.  
  37.     EXITCODE=0
  38.  
  39.     if [ -e pk3/acs ]
  40.     then
  41.  
  42.         rm pk3/acs/*.o 2> /dev/null
  43.  
  44.         for file in pk3/acs/*.c
  45.         do
  46.  
  47.             fileBase=$(basename $file)
  48.             cpwd=$(pwd)
  49.             (cd $ACCDIR && ./acc ${cpwd}/pk3/acs/${fileBase})
  50.             EXITCODE=$(( EXITCODE + $? ))
  51.  
  52.             if ((EXITCODE != 0))
  53.             then
  54.                 break
  55.             fi
  56.  
  57.         done
  58.     fi
  59.  
  60.     if ((EXITCODE == 0))
  61.     then
  62.         rm -f $FILENAME.pk3
  63.         cd pk3
  64.         zip -9r ../$FILENAME.pk3 *
  65.     fi
  66.  
  67.     return $EXITCODE
  68. }
  69.  
  70. function testpk3
  71. {
  72.     ( makepk3 )
  73.  
  74.     exitcode=$?
  75.  
  76.     if (( exitcode != 0 ))
  77.     then
  78.         exit
  79.     fi
  80.  
  81.     if [ "x${1}" == "xgzdoom" ]
  82.     then
  83.         shift
  84.         gzdoom -file $PWD/${FILENAME}.pk3 $@ ${TESTFLAGS}
  85.         return 0
  86.     fi
  87.  
  88.     if [ "x${1}" == "xskulltag" ]
  89.     then
  90.         shift
  91.         skulltag -file $PWD/${FILENAME}.pk3 $@ ${TESTFLAGS}
  92.         return 0
  93.     fi
  94.  
  95.     echo "Invalid test source port $1"
  96.     usage_and_exit
  97.     return 1
  98. }
  99.  
  100. function packagepk3
  101. {
  102.     pk3version=$1
  103.  
  104.     grep "[0-9]$" <<< ${FILENAME} 2> /dev/null >&2
  105.     exitcode=$?
  106.  
  107.     if ((exitcode == 0))
  108.     then
  109.         newname="${FILENAME}_${pk3version}"
  110.     else
  111.         newname="${FILENAME}${pk3version}"
  112.     fi
  113.  
  114.     newpk3="${newname}.pk3"
  115.     newzip="${newname}.zip"
  116.  
  117.     cd $BASEDIR
  118.  
  119.     ( makepk3 9 > /dev/null 2> /dev/null )
  120.  
  121.     mv ${FILENAME}.pk3 $newpk3
  122.     cp $newpk3 ~/.skulltag/
  123.  
  124.     zip $newzip $newpk3
  125.  
  126.     if [ -e "README" ]
  127.     then
  128.         zip -9 $newzip README
  129.     elif [ -e "README.txt" ]
  130.     then
  131.         zip -9 $newzip README.txt
  132.     fi
  133.  
  134.     if [ -e "CHANGELOG" ]
  135.     then
  136.         zip -9 $newzip CHANGELOG
  137.     elif [ -e "CHANGELOG.txt" ]
  138.     then
  139.         zip -9 $newzip CHANGELOG.txt
  140.     fi
  141.  
  142.     ( makepk3 9 > /dev/null 2> /dev/null )
  143. }
  144.  
  145.  
  146.  
  147.  
  148. if [ "x$1" == "x" ]
  149. then
  150.     usage_and_exit
  151.  
  152. elif [ "x$1" == "xpackage" -a "x$2" != "x" ]
  153. then
  154.     packagepk3 $2
  155.  
  156. elif [ "x$1" == "xtest" -a "x$2" != "x" ]
  157. then
  158.     shift
  159.     testpk3 $@
  160.  
  161. elif [ "x$1" == "xmake" ]
  162. then
  163.     makepk3
  164. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement