diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index 2a4df9bf7cf..3e96351acbb 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -1,4 +1,4 @@ -{ pkgs, stdenv, stdenvNoCC, gccStdenv, lib, recurseIntoAttrs }: +{ stdenv, stdenvNoCC, gccStdenv, lib, recurseIntoAttrs, libsForQt5, newScope, texlive, perlPackages, jdk8, jre8 }: # To whomever it may concern: # @@ -35,7 +35,7 @@ with lib; let - callPackage = pkgs.newScope self; + callPackage = newScope self; # The latest Dwarf Fortress version. Maintainers: when a new version comes # out, ensure that (unfuck|dfhack|twbt) are all up to date before changing @@ -45,51 +45,54 @@ let # Converts a version to a package name. versionToName = version: "dwarf-fortress_${lib.replaceStrings ["."] ["_"] version}"; - dwarf-therapist-original = pkgs.qt5.callPackage ./dwarf-therapist { - texlive = pkgs.texlive.combine { - inherit (pkgs.texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem; + dwarf-therapist-original = libsForQt5.callPackage ./dwarf-therapist { + texlive = texlive.combine { + inherit (texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem; }; }; # A map of names to each Dwarf Fortress package we know about. - df-games = lib.listToAttrs (map (dfVersion: { - name = versionToName dfVersion; - value = - let - # I can't believe this syntax works. Spikes of Nix code indeed... - dwarf-fortress = callPackage ./game.nix { - inherit dfVersion; - inherit dwarf-fortress-unfuck; + df-games = lib.listToAttrs (map + (dfVersion: { + name = versionToName dfVersion; + value = + let + # I can't believe this syntax works. Spikes of Nix code indeed... + dwarf-fortress = callPackage ./game.nix { + inherit dfVersion; + inherit dwarf-fortress-unfuck; + }; + + # unfuck is linux-only right now, we will only use it there. + dwarf-fortress-unfuck = + if stdenv.isLinux then callPackage ./unfuck.nix { inherit dfVersion; } + else null; + + twbt = callPackage ./twbt { inherit dfVersion; }; + + dfhack = callPackage ./dfhack { + inherit (perlPackages) XMLLibXML XMLLibXSLT; + inherit dfVersion twbt; + stdenv = gccStdenv; + }; + + dwarf-therapist = libsForQt5.callPackage ./dwarf-therapist/wrapper.nix { + inherit dwarf-fortress; + dwarf-therapist = dwarf-therapist-original; + }; + in + callPackage ./wrapper { + inherit (self) themes; + + dwarf-fortress = dwarf-fortress; + twbt = twbt; + dfhack = dfhack; + dwarf-therapist = dwarf-therapist; + + jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 }; - - # unfuck is linux-only right now, we will only use it there. - dwarf-fortress-unfuck = if stdenv.isLinux then callPackage ./unfuck.nix { inherit dfVersion; } - else null; - - twbt = callPackage ./twbt { inherit dfVersion; }; - - dfhack = callPackage ./dfhack { - inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT; - inherit dfVersion twbt; - stdenv = gccStdenv; - }; - - dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix { - inherit dwarf-fortress; - dwarf-therapist = dwarf-therapist-original; - }; - in - callPackage ./wrapper { - inherit (self) themes; - - dwarf-fortress = dwarf-fortress; - twbt = twbt; - dfhack = dfhack; - dwarf-therapist = dwarf-therapist; - - jdk = pkgs.jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 - }; - }) (lib.attrNames self.df-hashes)); + }) + (lib.attrNames self.df-hashes)); self = rec { df-hashes = builtins.fromJSON (builtins.readFile ./game.json); @@ -107,7 +110,7 @@ let soundSense = callPackage ./soundsense.nix { }; legends-browser = callPackage ./legends-browser { - jre = pkgs.jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 + jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 }; themes = recurseIntoAttrs (callPackage ./themes { @@ -119,4 +122,5 @@ let cla-theme = themes.cla; }; -in self // df-games +in +self // df-games diff --git a/pkgs/games/dwarf-fortress/dfhack/default.nix b/pkgs/games/dwarf-fortress/dfhack/default.nix index 2e27d9493bd..4bfb69355a7 100644 --- a/pkgs/games/dwarf-fortress/dfhack/default.nix +++ b/pkgs/games/dwarf-fortress/dfhack/default.nix @@ -1,7 +1,20 @@ -{ stdenv, buildEnv, lib, fetchFromGitHub, cmake, writeScriptBin -, perl, XMLLibXML, XMLLibXSLT, zlib, ruby -, enableStoneSense ? false, allegro5, libGLU, libGL -, enableTWBT ? true, twbt +{ stdenv +, buildEnv +, lib +, fetchFromGitHub +, cmake +, writeScriptBin +, perl +, XMLLibXML +, XMLLibXSLT +, zlib +, ruby +, enableStoneSense ? false +, allegro5 +, libGLU +, libGL +, enableTWBT ? true +, twbt , SDL , dfVersion }: @@ -60,9 +73,10 @@ let }; }; - release = if hasAttr dfVersion dfhack-releases - then getAttr dfVersion dfhack-releases - else throw "[DFHack] Unsupported Dwarf Fortress version: ${dfVersion}"; + release = + if hasAttr dfVersion dfhack-releases + then getAttr dfVersion dfhack-releases + else throw "[DFHack] Unsupported Dwarf Fortress version: ${dfVersion}"; version = release.dfHackRelease; @@ -125,7 +139,7 @@ let nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ]; # We don't use system libraries because dfhack needs old C++ ABI. buildInputs = [ zlib SDL ] - ++ lib.optionals enableStoneSense [ allegro5 libGLU libGL ]; + ++ lib.optionals enableStoneSense [ allegro5 libGLU libGL ]; preConfigure = '' # Trick build system into believing we have .git @@ -138,7 +152,7 @@ let ''; cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ] - ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ]; + ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ]; # dfhack expects an unversioned libruby.so to be present in the hack # subdirectory for ruby plugins to function. diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix index 243db1e1c39..ec765e71158 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix @@ -1,5 +1,12 @@ -{ lib, stdenv, fetchFromGitHub, qtbase -, qtdeclarative, cmake, texlive, ninja }: +{ lib +, stdenv +, fetchFromGitHub +, qtbase +, qtdeclarative +, cmake +, texlive +, ninja +}: stdenv.mkDerivation rec { pname = "dwarf-therapist"; @@ -15,10 +22,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ texlive cmake ninja ]; buildInputs = [ qtbase qtdeclarative ]; - installPhase = if stdenv.isDarwin then '' - mkdir -p $out/Applications - cp -r DwarfTherapist.app $out/Applications - '' else null; + installPhase = + if stdenv.isDarwin then '' + mkdir -p $out/Applications + cp -r DwarfTherapist.app $out/Applications + '' else null; dontWrapQtApps = true; diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in b/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in index 77936c430e2..5ae0a35b5e2 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/dwarf-therapist.in @@ -5,22 +5,21 @@ install_dir="@install@" therapist_dir="@therapist@" -cat <&2 +@cat@ <&2 Using $DT_DIR as Dwarf Therapist overlay directory. EOF update_path() { local path="$1" - mkdir -p "$DT_DIR/$(dirname "$path")" + @mkdir@ -p "$DT_DIR/$(@dirname@ "$path")" if [ ! -e "$DT_DIR/$path" ] || [ -L "$DT_DIR/$path" ]; then - rm -f "$DT_DIR/$path" - ln -s "$install_dir/share/dwarftherapist/$path" "$DT_DIR/$path" + @rm@ -f "$DT_DIR/$path" + @ln@ -s "$install_dir/share/dwarftherapist/$path" "$DT_DIR/$path" fi } cd "$install_dir/share/dwarftherapist" update_path memory_layouts -QT_QPA_PLATFORM_PLUGIN_PATH="@qt_plugin_path@" \ - exec "$therapist_dir/bin/dwarftherapist" "$@" +exec "$therapist_dir/bin/dwarftherapist" "$@" diff --git a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix index 7db79012ec6..93f51df1819 100644 --- a/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix +++ b/pkgs/games/dwarf-fortress/dwarf-therapist/wrapper.nix @@ -1,8 +1,9 @@ -{ pkgs, stdenv, dwarf-therapist, dwarf-fortress, makeWrapper }: +{ stdenv, dwarf-therapist, dwarf-fortress, substituteAll, coreutils, wrapQtAppsHook }: let - platformSlug = if stdenv.targetPlatform.is32bit then - "linux32" else "linux64"; + platformSlug = + if stdenv.targetPlatform.is32bit then + "linux32" else "linux64"; inifile = "linux/v0.${dwarf-fortress.baseVersion}.${dwarf-fortress.patchVersion}_${platformSlug}.ini"; in @@ -10,24 +11,32 @@ in stdenv.mkDerivation { name = "dwarf-therapist-${dwarf-therapist.version}"; - wrapper = ./dwarf-therapist.in; + wrapper = substituteAll { + src = ./dwarf-therapist.in; + stdenv_shell = "${stdenv.shell}"; + rm = "${coreutils}/bin/rm"; + ln = "${coreutils}/bin/ln"; + cat = "${coreutils}/bin/cat"; + mkdir = "${coreutils}/bin/mkdir"; + dirname = "${coreutils}/bin/dirname"; + therapist = "${dwarf-therapist}"; + }; paths = [ dwarf-therapist ]; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ wrapQtAppsHook ]; passthru = { inherit dwarf-fortress dwarf-therapist; }; buildCommand = '' mkdir -p $out/bin - ln -s $out/bin/dwarftherapist $out/bin/DwarfTherapist - substitute $wrapper $out/bin/dwarftherapist \ - --subst-var-by stdenv_shell ${stdenv.shell} \ - --subst-var-by install $out \ - --subst-var-by therapist ${dwarf-therapist} \ - --subst-var-by qt_plugin_path "${pkgs.qt5.qtbase}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms" - chmod 755 $out/bin/dwarftherapist + install -Dm755 $wrapper $out/bin/dwarftherapist + ln -s $out/bin/dwarftherapist $out/bin/DwarfTherapist + + substituteInPlace $out/bin/dwarftherapist \ + --subst-var-by install $out + wrapQtApp $out/bin/dwarftherapist # Fix up memory layouts rm -rf $out/share/dwarftherapist/memory_layouts/linux diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix index 9200d01aa98..d73b111919e 100644 --- a/pkgs/games/dwarf-fortress/game.nix +++ b/pkgs/games/dwarf-fortress/game.nix @@ -1,10 +1,16 @@ -{ stdenv, lib, fetchurl -, SDL, dwarf-fortress-unfuck +{ stdenv +, lib +, fetchurl +, SDL +, dwarf-fortress-unfuck -# Our own "unfuck" libs for macOS -, ncurses, fmodex, gcc + # Our own "unfuck" libs for macOS +, ncurses +, fmodex +, gcc -, dfVersion, df-hashes +, dfVersion +, df-hashes }: with lib; @@ -30,15 +36,18 @@ let baseVersion = elemAt dfVersionTriple 1; patchVersion = elemAt dfVersionTriple 2; - game = if hasAttr dfVersion df-hashes - then getAttr dfVersion df-hashes - else throw "Unknown Dwarf Fortress version: ${dfVersion}"; - dfPlatform = if hasAttr stdenv.hostPlatform.system platforms - then getAttr stdenv.hostPlatform.system platforms - else throw "Unsupported system: ${stdenv.hostPlatform.system}"; - sha256 = if hasAttr dfPlatform game - then getAttr dfPlatform game - else throw "Unsupported dfPlatform: ${dfPlatform}"; + game = + if hasAttr dfVersion df-hashes + then getAttr dfVersion df-hashes + else throw "Unknown Dwarf Fortress version: ${dfVersion}"; + dfPlatform = + if hasAttr stdenv.hostPlatform.system platforms + then getAttr stdenv.hostPlatform.system platforms + else throw "Unsupported system: ${stdenv.hostPlatform.system}"; + sha256 = + if hasAttr dfPlatform game + then getAttr dfPlatform game + else throw "Unsupported dfPlatform: ${dfPlatform}"; in diff --git a/pkgs/games/dwarf-fortress/lazy-pack.nix b/pkgs/games/dwarf-fortress/lazy-pack.nix index 41620dd66f1..b34dbd3c74b 100644 --- a/pkgs/games/dwarf-fortress/lazy-pack.nix +++ b/pkgs/games/dwarf-fortress/lazy-pack.nix @@ -1,5 +1,10 @@ -{ stdenvNoCC, lib, buildEnv -, df-games, themes, latestVersion, versionToName +{ stdenvNoCC +, lib +, buildEnv +, df-games +, themes +, latestVersion +, versionToName , dfVersion ? latestVersion # This package should, at any given time, provide an opinionated "optimal" # DF experience. It's the equivalent of the Lazy Newbie Pack, that is, and @@ -9,9 +14,10 @@ , enableSoundSense ? true , enableStoneSense ? true , enableDwarfTherapist ? true -, enableLegendsBrowser ? true, legends-browser +, enableLegendsBrowser ? true +, legends-browser , theme ? themes.phoebus -# General config options: + # General config options: , enableIntro ? true , enableTruetype ? true , enableFPS ? false @@ -23,9 +29,10 @@ with lib; let dfGame = versionToName dfVersion; - dwarf-fortress = if hasAttr dfGame df-games - then getAttr dfGame df-games - else throw "Unknown Dwarf Fortress version: ${dfVersion}"; + dwarf-fortress = + if hasAttr dfGame df-games + then getAttr dfGame df-games + else throw "Unknown Dwarf Fortress version: ${dfVersion}"; dwarf-therapist = dwarf-fortress.dwarf-therapist; in buildEnv { @@ -33,10 +40,11 @@ buildEnv { paths = [ (dwarf-fortress.override { inherit enableDFHack enableTWBT enableSoundSense enableStoneSense theme - enableIntro enableTruetype enableFPS enableTextMode enableSound; - })] - ++ lib.optional enableDwarfTherapist dwarf-therapist - ++ lib.optional enableLegendsBrowser legends-browser; + enableIntro enableTruetype enableFPS enableTextMode enableSound; + }) + ] + ++ lib.optional enableDwarfTherapist dwarf-therapist + ++ lib.optional enableLegendsBrowser legends-browser; meta = with lib; { description = "An opinionated wrapper for Dwarf Fortress"; diff --git a/pkgs/games/dwarf-fortress/soundsense.nix b/pkgs/games/dwarf-fortress/soundsense.nix index a59c8730690..5202c13b5b8 100644 --- a/pkgs/games/dwarf-fortress/soundsense.nix +++ b/pkgs/games/dwarf-fortress/soundsense.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchzip, dos2unix +{ stdenv +, fetchzip +, dos2unix , soundPack ? stdenv.mkDerivation { name = "soundsense-soundpack"; src = fetchzip { @@ -8,7 +10,8 @@ installPhase = '' cp -r . $out ''; -}}: + } +}: stdenv.mkDerivation rec { version = "2016-1_196"; diff --git a/pkgs/games/dwarf-fortress/themes/default.nix b/pkgs/games/dwarf-fortress/themes/default.nix index 6241df7590d..c6987a1d16b 100644 --- a/pkgs/games/dwarf-fortress/themes/default.nix +++ b/pkgs/games/dwarf-fortress/themes/default.nix @@ -1,19 +1,21 @@ -{lib, fetchFromGitHub, ...}: +{ lib, fetchFromGitHub, ... }: with builtins; -listToAttrs (map (v: { - inherit (v) name; - value = fetchFromGitHub { - name = "${v.name}-${v.version}"; - owner = "DFgraphics"; - repo = v.name; - rev = v.version; - sha256 = v.sha256; - meta = with lib; { - platforms = platforms.all; - maintainers = [ maintainers.matthewbauer maintainers.shazow ]; - license = licenses.free; +listToAttrs (map + (v: { + inherit (v) name; + value = fetchFromGitHub { + name = "${v.name}-${v.version}"; + owner = "DFgraphics"; + repo = v.name; + rev = v.version; + sha256 = v.sha256; + meta = with lib; { + platforms = platforms.all; + maintainers = [ maintainers.matthewbauer maintainers.shazow ]; + license = licenses.free; + }; }; - }; -}) (fromJSON (readFile ./themes.json))) + }) + (fromJSON (readFile ./themes.json))) diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix index bee2c28e530..e6c82e32f0d 100644 --- a/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/pkgs/games/dwarf-fortress/twbt/default.nix @@ -1,4 +1,7 @@ -{ stdenvNoCC, lib, fetchurl, unzip +{ stdenvNoCC +, lib +, fetchurl +, unzip , dfVersion }: @@ -49,9 +52,10 @@ let }; }; - release = if hasAttr dfVersion twbt-releases - then getAttr dfVersion twbt-releases - else throw "[TWBT] Unsupported Dwarf Fortress version: ${dfVersion}"; + release = + if hasAttr dfVersion twbt-releases + then getAttr dfVersion twbt-releases + else throw "[TWBT] Unsupported Dwarf Fortress version: ${dfVersion}"; in stdenvNoCC.mkDerivation rec { diff --git a/pkgs/games/dwarf-fortress/unfuck.nix b/pkgs/games/dwarf-fortress/unfuck.nix index 0fb08aa7e87..7e96b284044 100644 --- a/pkgs/games/dwarf-fortress/unfuck.nix +++ b/pkgs/games/dwarf-fortress/unfuck.nix @@ -1,7 +1,21 @@ -{ stdenv, lib, fetchFromGitHub, cmake -, libGL, libSM, SDL, SDL_image, SDL_ttf, glew, openalSoft -, ncurses, glib, gtk2, libsndfile, zlib -, dfVersion, pkg-config +{ stdenv +, lib +, fetchFromGitHub +, cmake +, libGL +, libSM +, SDL +, SDL_image +, SDL_ttf +, glew +, openalSoft +, ncurses +, glib +, gtk2 +, libsndfile +, zlib +, dfVersion +, pkg-config }: with lib; @@ -46,9 +60,10 @@ let }; }; - release = if hasAttr dfVersion unfuck-releases - then getAttr dfVersion unfuck-releases - else throw "[unfuck] Unknown Dwarf Fortress version: ${dfVersion}"; + release = + if hasAttr dfVersion unfuck-releases + then getAttr dfVersion unfuck-releases + else throw "[unfuck] Unknown Dwarf Fortress version: ${dfVersion}"; in stdenv.mkDerivation { @@ -68,8 +83,17 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ - libSM SDL SDL_image SDL_ttf glew openalSoft - ncurses gtk2 libsndfile zlib libGL + libSM + SDL + SDL_image + SDL_ttf + glew + openalSoft + ncurses + gtk2 + libsndfile + zlib + libGL ]; # Don't strip unused symbols; dfhack hooks into some of them. diff --git a/pkgs/games/dwarf-fortress/wrapper/default.nix b/pkgs/games/dwarf-fortress/wrapper/default.nix index 73288ab659f..ce989b98ffb 100644 --- a/pkgs/games/dwarf-fortress/wrapper/default.nix +++ b/pkgs/games/dwarf-fortress/wrapper/default.nix @@ -1,13 +1,22 @@ -{ stdenv, lib, buildEnv, substituteAll, runCommand +{ stdenv +, lib +, buildEnv +, substituteAll +, runCommand +, coreutils , dwarf-fortress , dwarf-therapist -, enableDFHack ? false, dfhack -, enableSoundSense ? false, soundSense, jdk +, enableDFHack ? false +, dfhack +, enableSoundSense ? false +, soundSense +, jdk , enableStoneSense ? false -, enableTWBT ? false, twbt -, themes ? {} +, enableTWBT ? false +, twbt +, themes ? { } , theme ? null -# General config options: + # General config options: , enableIntro ? true , enableTruetype ? true , enableFPS ? false @@ -31,11 +40,11 @@ let # These are in inverse order for first packages to override the next ones. themePkg = lib.optional (theme != null) ptheme; pkgs = lib.optional enableDFHack dfhack_ - ++ lib.optional enableSoundSense soundSense - ++ lib.optional enableTWBT twbt.art - ++ [ dwarf-fortress ]; + ++ lib.optional enableSoundSense soundSense + ++ lib.optional enableTWBT twbt.art + ++ [ dwarf-fortress ]; - fixup = lib.singleton (runCommand "fixup" {} ('' + fixup = lib.singleton (runCommand "fixup" { } ('' mkdir -p $out/data/init '' + (if (theme != null) then '' cp ${lib.head themePkg}/data/init/init.txt $out/data/init/init.txt @@ -61,7 +70,7 @@ let substituteInPlace $out/data/init/init.txt \ --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]' '' + - lib.optionalString enableTextMode '' + lib.optionalString enableTextMode '' substituteInPlace $out/data/init/init.txt \ --replace '[PRINT_MODE:2D]' '[PRINT_MODE:TEXT]' '' + '' @@ -89,8 +98,15 @@ stdenv.mkDerivation { name = "dwarf-fortress-init"; src = ./dwarf-fortress-init.in; inherit env; - exe = if stdenv.isLinux then "libs/Dwarf_Fortress" - else "dwarfort.exe"; + exe = + if stdenv.isLinux then "libs/Dwarf_Fortress" + else "dwarfort.exe"; + stdenv_shell = "${stdenv.shell}"; + cp = "${coreutils}/bin/cp"; + rm = "${coreutils}/bin/rm"; + ln = "${coreutils}/bin/ln"; + cat = "${coreutils}/bin/cat"; + mkdir = "${coreutils}/bin/mkdir"; }; runDF = ./dwarf-fortress.in; diff --git a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in index b041067d89e..27639e57f21 100644 --- a/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in +++ b/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in @@ -1,3 +1,4 @@ +#!@stdenv_shell@ -e shopt -s extglob [ -z "$DF_DIR" ] && export DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux" @@ -7,25 +8,25 @@ exe="$env_dir/@exe@" update_path() { local path="$1" - mkdir -p "$DF_DIR/$(dirname "$path")" + @mkdir@ -p "$DF_DIR/$(dirname "$path")" # If user has replaced these data directories, let them stay. if [ ! -e "$DF_DIR/$path" ] || [ -L "$DF_DIR/$path" ]; then - rm -f "$DF_DIR/$path" - ln -s "$env_dir/$path" "$DF_DIR/$path" + @rm@ -f "$DF_DIR/$path" + @ln@ -s "$env_dir/$path" "$DF_DIR/$path" fi } forcecopy_path() { local path="$1" - mkdir -p "$DF_DIR/$(dirname "$path")" - rm -rf "$DF_DIR/$path" - cp -rL --no-preserve=all "$env_dir/$path" "$DF_DIR/$path" + @mkdir@ -p "$DF_DIR/$(dirname "$path")" + @rm@ -rf "$DF_DIR/$path" + @cp@ -rL --no-preserve=all "$env_dir/$path" "$DF_DIR/$path" } -mkdir -p "$DF_DIR" +@mkdir@ -p "$DF_DIR" -cat <&2 +@cat@ <&2 Using $DF_DIR as Dwarf Fortress overlay directory. If you do any changes in it, don't forget to clean it when updating the game version! We try to detect changes based on data directories being symbolic links -- keep this in mind.