All pastes #251900 Raw Edit

segin

public text v1 · immutable
#251900 ·published 2006-11-18 20:16 UTC
rendered paste body
#!/bin/sh
# That there is an interpeter line, tells the OS what program to use to run this script.
#

# `$#' is the number of arguments passed to the script. The actual script name counts as one. 
# If the script was invoked as just "game.sh" with no additional arguments, then "game.sh" is the
# first argument. 
if [ $# == 1 ]; then
    echo "Please select a game to play as an argument.";
    echo "Examples are \"starcraft\" and \"wow\".";
    exit 1;
    # No game specified, so exit.
fi

# $1 is the second argument, or what comes immedatly after "game.sh" on the commandline.
# $0 is the "game.sh" argument, or program name argument.
if [ $1 == "starcraft" ]; then
    # 'ntfs-3g' is the FUSE driver for read-write NTFS support.
    if mount /dev/hdb1 /mnt/winc -t ntfs-3g -o rw; then
        # If the mount failed, this wouldn't run. 
        cd /mnt/winc/StarCraft/;
        wine starcraft.exe;
        exit 0;
        # The game ran, so exit with sucess (0)
    else 
        echo "Mount failed!";
        exit 1;
    fi
fi
# 'fi' is how you end an 'if' block.

if [ $1 == "wow" ]; then
    if mount /dev/hdb1 /mnt/winc -t ntfs-3g -o rw; then
        # If the mount failed, this wouldn't run. 
        cd /mnt/winc/Program\ Files/Blizzard/World\ of\ Warcraft/;
        wine WoW.exe -opengl;
        exit 0;
        # The game ran, so exit with sucess (0)
    else 
        echo "Mount failed!";
        exit 1;
    fi
fi

# If the argument weasn't a valid game name, the code would reach this point.
# Also, you can encompass variable names in {}, but you still need the $ in front.
echo "Invalid game name: ${1}"; 
exit 1;