···8181 description = "List of additional package outputs to be symlinked into <filename>/run/current-system/sw</filename>.";
8282 };
83838484+ extraSetup = mkOption {
8585+ type = types.lines;
8686+ default = [ ];
8787+ description = "Shell fragments to be run after the system environment has been created. This should only be used for things that need to modify the internals of the environment, e.g. generating MIME caches. The environment being built can be accessed at $out.";
8888+ };
8989+8490 };
85918692 system = {
···134140 if [ -x $out/bin/glib-compile-schemas -a -w $out/share/glib-2.0/schemas ]; then
135141 $out/bin/glib-compile-schemas $out/share/glib-2.0/schemas
136142 fi
137137-138138- if [ -x $out/bin/install-info -a -w $out/share/info ]; then
139139- shopt -s nullglob
140140- for i in $out/share/info/*.info $out/share/info/*.info.gz; do
141141- $out/bin/install-info $i $out/share/info/dir
142142- done
143143- fi
144144- '' ++ optionalString config.xdg.mime.enable ''
145145- XDG_DATA_DIRS=$out/share ${pkgs.shared-mime-info}/bin/update-mime-database -V $out/share/mime > /dev/null
146146-147147- ${pkgs.desktop-file-utils}/bin/update-desktop-database $out/share/applications
143143+144144+ ${config.environment.extraSetup}
148145 '';
149146 };
150147
+10
nixos/modules/config/xdg/mime.nix
···2121 # this package also installs some useful data, as well as its utilities
2222 pkgs.shared-mime-info
2323 ];
2424+2525+ environment.extraSetup = ''
2626+ if [ -w $out/share/mime ]; then
2727+ XDG_DATA_DIRS=$out/share ${pkgs.shared-mime-info}/bin/update-mime-database -V $out/share/mime > /dev/null
2828+ fi
2929+3030+ if [ -w $out/share/applications ]; then
3131+ ${pkgs.desktop-file-utils}/bin/update-desktop-database $out/share/applications
3232+ fi
3333+ '';
2434 };
25352636}
+8
nixos/modules/misc/documentation.nix
···8282 environment.systemPackages = [ pkgs.texinfoInteractive ];
8383 environment.pathsToLink = [ "/share/info" ];
8484 environment.extraOutputsToInstall = [ "info" ] ++ optional cfg.dev.enable "devinfo";
8585+ environment.extraSetup = ''
8686+ if [ -w $out/share/info ]; then
8787+ shopt -s nullglob
8888+ for i in $out/share/info/*.info $out/share/info/*.info.gz; do
8989+ ${pkgs.texinfo}/bin/install-info $i $out/share/info/dir
9090+ done
9191+ fi
9292+ '';
8593 })
86948795 (mkIf cfg.doc.enable {