{ pkgs, lib, config, ... }: let cfg = config.programs.pandoc; in { options.programs.pandoc = { germanAbbreviations = lib.mkEnableOption "importing german abbreviations" // { default = true; }; extraAbbreviations = lib.mkOption { type = lib.types.listOf lib.types.str; default = []; }; }; config = lib.mkIf cfg.enable { xdg.dataFile = lib.mkIf (cfg.germanAbbreviations || cfg.extraAbbreviations != []) { "pandoc/abbreviations".source = pkgs.runCommand "pandoc-abbreviations" { buildInputs = [ pkgs.coreutils ]; } '' cat \ <(${lib.getExe' cfg.finalPackage "pandoc"} --print-default-data-file=abbreviations) \ ${lib.optionalString cfg.germanAbbreviations ./german_abbreviations.txt} \ ${lib.optionalString (cfg.extraAbbreviations != []) (pkgs.writeText "abbrevs.txt" (lib.concatStringsSep "\n" cfg.extraAbbreviations))} \ | sort | uniq >$out ''; }; }; }