RetroArch/pkg/apple/rebuild-assets.sh

152 lines
3.6 KiB
Bash
Executable File

#!/bin/bash
WD=$(realpath $(dirname $0))
include_autoconfig=""
include_cheats=""
include_databases=""
include_overlays=""
include_shaders=""
include_xmb=""
assets_zip="$WD/assets.zip"
args=`getopt acdhimosx $*`
set -- $args
while :; do
case "$1" in
-a)
include_autoconfig=1
include_cheats=1
include_databases=1
include_overlays=1
include_shaders=1
include_xmb=1
shift
;;
-c)
include_cheats=1
shift
;;
-d)
include_databases=1
shift
;;
-h)
echo "$(basename $0) -- Rebuild assets.zip"
echo "Meant to be used when building RetroArch yourself. The buildbot does not use this."
echo
echo " -a Include all assets, cheats, databases, input autoconfig, overlays, and shaders"
echo " -c Include cheats"
echo " -d Include databases"
echo " -i Include input autoconfig"
echo " -o Include overlays"
echo " -s Include shaders"
echo " -x Include XMB assets"
echo " -m Build for macOS (places in OSX directory)"
exit 0
;;
-i)
include_autoconfig=1
shift
;;
-m)
assets_zip="$WD/OSX/assets.zip"
shift
;;
-o)
include_overlays=1
shift
;;
-s)
include_shaders=1
shift
;;
-x)
include_xmb=1
shift
;;
--)
shift
break
;;
esac
done
function fetch_zip()
{
echo "Fetching $1..."
curl -s -o tmp.zip "https://git.libretro.com/api/v4/projects/libretro-assets%2F$1/jobs/artifacts/master/download?job=libretro-package-any"
echo " Unzipping..."
unzip -q tmp.zip
rm -f tmp.zip
}
pushd "$WD" &>/dev/null
rm -rf .media
fetch_zip retroarch-assets
if [ -n "$include_autoconfig" ] ; then
fetch_zip retroarch-joypad-autoconfig
fi
if [ -n "$include_cheats" -o -n "$include_databases" ] ; then
fetch_zip libretro-database
fi
fetch_zip libretro-super
if [ -n "$include_overlays" ] ; then
fetch_zip common-overlays
fi
if [ -n "$include_shaders" ] ; then
fetch_zip glsl-shaders
fetch_zip slang-shaders
fi
pushd .media &>/dev/null
echo "Packaging assets"
mkdir assets ; mv retroarch-assets/{COPYING,glui,menu_widgets,ozone,pkg,rgui,sounds} assets
if [ -n "$include_xmb" ] ; then
mv retroarch-assets/xmb assets
fi
rm -rf retroarch-assets
rm -rf assets/pkg/wiiu
if [ -n "$include_autoconfig" ] ; then
echo "Packaging autoconfig"
mv retroarch-joypad-autoconfig autoconfig
rm -rf autoconfig/{android,dinput,linuxraw,parport,qnx,sdl2,udev,x,xinput}
fi
if [ -n "$include_cheats" ] ; then
echo "Packaging cheats"
mv libretro-database/cht cht
fi
if [ -n "$include_databases" ] ; then
echo "Packaging database"
mkdir database ; mv libretro-database/{cursors,rdb} database
fi
rm -rf libretro-database
echo "Packaging info"
mv libretro-super/info info ; rmdir libretro-super
if [ -n "$include_overlays" ] ; then
echo "Packaging overlays"
mv common-overlays overlays
rm -rf overlays/{ctr,wii}
fi
if [ -n "$include_shaders" ] ; then
echo "Packaging shaders"
mkdir shaders ; mv glsl-shaders shaders/shaders_glsl ; mv slang-shaders shaders/shaders_slang
fi
rm -f $assets_zip
echo "Zipping final assets bundle..."
zip -qr $assets_zip *
popd &>/dev/null
rm -rf .media
echo "Done!"