From de30ce9ef523af2e704e17905398d7d48d499313 Mon Sep 17 00:00:00 2001 From: Themaister Date: Sun, 20 Mar 2011 13:40:01 +0100 Subject: [PATCH] Start on a zip loader wrapper. --- ssnes-zip | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 ssnes-zip diff --git a/ssnes-zip b/ssnes-zip new file mode 100755 index 0000000000..fc0e1275dc --- /dev/null +++ b/ssnes-zip @@ -0,0 +1,57 @@ +#!/bin/sh + +die() +{ + echo "Error: $1" + exit 1 +} + +if [ -z "$1" ]; then + die "Need at least one argument" +fi + +COMP_FILE="$1" +TMPROM="`mktemp`" +shift + +extract_zip() +{ + ZIP_LOC="`which unzip`" + ZIPINFO_LOC="`which zipinfo`" + if [ -z "$ZIP_LOC" ]; then + die "Cannot find location of unzip" + fi + if [ -z "$ZIPINFO_LOC" ]; then + die "Cannot find location of zipinfo" + fi + + FILENAME="`$ZIPINFO_LOC -1 \"$1\" | grep '\.s[mf]c$' | head -n1`" + if [ -z "$FILENAME" ]; then + die "Cannot find .smc nor .sfc file in archive" + fi + + $ZIP_LOC -p "$1" "$FILENAME" > "$2" +} + +case "$COMP_FILE" in + *.zip ) + extract_zip "$COMP_FILE" "$TMPROM" + EXTENSION=".zip" + ;; + * ) + die "Couldn't find valid zipped rom." + ;; +esac + +SAVENAME="`basename \"$COMP_FILE\" $EXTENSION`" +DIRNAME="`dirname \"$COMP_FILE\"`" +SAVENAME="${SAVENAME}.srm" +echo "Savename: ${DIRNAME}/${SAVENAME}" + +SSNES_PATH="`which ssnes`" +if [ -z "$SSNES_PATH" ]; then + die "Cannot find SSNES in path." +fi + +"$SSNES_PATH" "$TMPROM" -s "${DIRNAME}/${SAVENAME}" "$@" +rm -f "$TMPROM"