#!/bin/sh gamesdir=/opt/dwarf-fortress dfhackdir=/opt/dfhack install="$HOME/.dwarf-fortress" exe="./libs/Dwarf_Fortress" do_install() { # -n switch requires GNU cp 7.1 cp -rn "$gamesdir"/data "$install"/ # DF gets unhappy when this is out of sync cp -f "$gamesdir"/data/index "$install"/data/ cp -rsn "$gamesdir"/* "$install"/ } do_dfhack_install() { cp -rn "$dfhackdir"/dfhack-config "$install"/ cp -ns "$dfhackdir"/dfhack.init-example "$install"/ } if [ -d "$install" ]; then # delete dangling symlinks find -L "$install/" -type l -delete # ignore "are the same file" errors do_install 2>/dev/null do_dfhack_install 2>/dev/null else mkdir "$install" || exit do_install || exit do_dfhack_install || exit fi cd "$install" || exit export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$dfhackdir/hack/lib:$dfhackdir/hack" export LD_PRELOAD="${LD_PRELOAD:+$LD_PRELOAD:}$dfhackdir/hack/libdfhack.so" exec "$exe" "$@"