1#!/bin/bash 2# 3# Dink Smallwood installer extractor 4# Released into the public domain by its creator, 5# Alexander Krivács Schrøder 6# Fixes by Sylvain Beucler 2008 7# 8# Prerequisites: 9# * 7-Zip command line tool (7z) installed on system (Package called 10# p7zip on Gentoo, p7zip-full under Debian) 11# 12# Parameters: 13# 1. The Dink Smallwood installer file (dinksmallwood108.exe) 14# 2. The location of the extracted files 15 16# Note: for some reason, 7z (and 7-Zip generally) doesn't extract or 17# otherwise detect the following files: 18# 19# dink/Sound/107.mid 20# dink/Sound/6.mid 21# dink/Sound/Battle.mid 22# dink/Sound/Caveexpl.mid 23# dink/Story/SC-SLAY.d 24# dink/Story/SC-LOCK.d 25# dink/Story/SC-PILL.d 26# island/sound/metopen.wav 27# 28# So you might be better off using Wine. 29 30 31# Define globals 32PACKAGENAME=$1 33DESTINATION=$2 34ORIGLOC=$(pwd) 35 36# Check if we have gotten our parameters 37if [ "x$PACKAGENAME" = "x" ] || [ "x$DESTINATION" = "x" ]; then 38 echo "Usage: $(basename $0) <installer> <output location>" 39 exit 40fi 41 42# Check if parameters are valid 43if [ ! -e $PACKAGENAME ]; then 44 echo "Error: installer does not exist" 45 exit 46fi 47 48if ! which 7z > /dev/null; then 49 echo "You need to install 7z" 50 exit 51fi 52 53# Create destionation folder and extract files into it 54if mkdir -p $DESTINATION; then 55 7z x $PACKAGENAME -o$DESTINATION 56 cd $DESTINATION 57 58 # Remove plugin directory from installer 59 rm -rf \$PLUGINSDIR 60 61 # Move files out of folder with odd name 62 cd \$_OUTDIR 63 mv * .. 64 cd .. 65 rm -rf \$_OUTDIR 66 67 # Remove unnecessary files 68 rm DFArc.exe dink.exe dinkedit.exe 69 70 # Return to original location 71 cd $ORIGLOC 72else 73 echo "Error: Could not create destionation folder" 74fi 75