diff options
author | Morgan Jones <me@numin.it> | 2018-07-15 05:38:30 +0000 |
---|---|---|
committer | Morgan Jones <me@numin.it> | 2018-09-09 06:59:58 +0000 |
commit | 7a5521537a1715ac7f7f5e420cef865304383b82 (patch) | |
tree | fec3baaf58fc5a31626a6ea6c3f5f5b487c9baf6 /pkgs/games/dwarf-fortress/default.nix | |
parent | f14d3b4795c173f5ff353031b8d32afab7090ab9 (diff) | |
download | nixpkgs-7a5521537a1715ac7f7f5e420cef865304383b82.tar nixpkgs-7a5521537a1715ac7f7f5e420cef865304383b82.tar.gz nixpkgs-7a5521537a1715ac7f7f5e420cef865304383b82.tar.bz2 nixpkgs-7a5521537a1715ac7f7f5e420cef865304383b82.tar.lz nixpkgs-7a5521537a1715ac7f7f5e420cef865304383b82.tar.xz nixpkgs-7a5521537a1715ac7f7f5e420cef865304383b82.tar.zst nixpkgs-7a5521537a1715ac7f7f5e420cef865304383b82.zip |
Let the user override dfVersion in dwarf-fortress-full
Diffstat (limited to 'pkgs/games/dwarf-fortress/default.nix')
-rw-r--r-- | pkgs/games/dwarf-fortress/default.nix | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index 87bcc44b815..1ee33fb27f3 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -6,26 +6,48 @@ # # If this is your first time here, you should probably install the dwarf-fortress-full package, # for instance with: -# `environment.systemPackages = [ pkgs.dwarf-fortress-packages.dwarf-fortress-full ];` +# +# environment.systemPackages = [ pkgs.dwarf-fortress-packages.dwarf-fortress-full ]; # # You can adjust its settings by using override, or compile your own package by -# using the other packages here. Take a look at lazy-pack.nix to get an idea of -# how. +# using the other packages here. +# +# For example, you can enable the FPS indicator, disable the intro, pick a +# theme other than phoebus (the default for dwarf-fortress-full), _and_ use +# an older version with something like: +# +# environment.systemPackages = [ +# (pkgs.dwarf-fortress-packages.dwarf-fortress-full.override { +# dfVersion = "0.44.11"; +# theme = "cla"; +# enableIntro = false; +# enableFPS = true; +# }) +# ] +# +# Take a look at lazy-pack.nix to see all the other options. # # You will find the configuration files in ~/.local/share/df_linux/data/init. If # you un-symlink them and edit, then the scripts will avoid overwriting your # changes on later launches, but consider extending the wrapper with your # desired options instead. -# -# Although both dfhack and dwarf therapist are included in the lazy pack, you -# can only use one at a time. DFHack does have therapist-like features, so this -# may or may not be a problem. + +with lib; let callPackage = pkgs.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 + # this. + latestVersion = "0.44.12"; + + # Converts a version to a package name. + versionToName = version: "dwarf-fortress_${lib.replaceStrings ["."] ["_"] version}"; + + # A map of names to each Dwarf Fortress package we know about. df-games = lib.listToAttrs (map (dfVersion: { - name = "dwarf-fortress_${lib.replaceStrings ["."] ["_"] dfVersion}"; + name = versionToName dfVersion; value = let # I can't believe this syntax works. Spikes of Nix code indeed... @@ -59,9 +81,14 @@ let self = rec { df-hashes = builtins.fromJSON (builtins.readFile ./game.json); - dwarf-fortress = df-games.dwarf-fortress_0_44_12; + + dwarf-fortress = getAttr (versionToName latestVersion) df-games; - dwarf-fortress-full = callPackage ./lazy-pack.nix { }; + dwarf-fortress-full = callPackage ./lazy-pack.nix { + inherit versionToName; + inherit latestVersion; + inherit df-games; + }; soundSense = callPackage ./soundsense.nix { }; |