mirror of
https://github.com/nix-community/home-manager
synced 2024-12-29 13:19:47 +01:00
038630363e
* xdg-mime: allow overrides to shared-mime-info and desktop-file-utils The `xdg-mime` module now exposes packages to determine what will be run for update-mime-database and update-desktop-database. This allows users to select a different version of these packages if the are incompatible. This should, in combination with an override to the version of `shared-mime-info` (can be found here notalltim/home-manager-config#4), resolve #4955, #5102, #4682, and possibly #4941. The problem seems to stem from a mismatch in the version of `shared-mime-info` with the host. I also switched from using `buildPackages` to `pkgs` to improve cross-compilation compatibility. * xdg-mime: Add tests for xdg-mime module The xdg-mime module was missing tests so I added basic test for all the options and checked the basic behavior. It covers ensuring that the proper files/folders are created and that the package overrides work.
38 lines
1.4 KiB
Nix
38 lines
1.4 KiB
Nix
{ config, ... }:
|
|
let inherit (config.lib.test) mkStubPackage;
|
|
in {
|
|
config = {
|
|
xdg.mime.enable = true;
|
|
xdg.mime.sharedMimeInfoPackage = mkStubPackage {
|
|
name = "update-mime-database";
|
|
buildScript = ''
|
|
mkdir -p $out/bin
|
|
echo '#!/bin/sh' > $out/bin/update-mime-database
|
|
echo 'mkdir -p $out/share/mime && touch $out/share/mime/mime.cache' >> $out/bin/update-mime-database
|
|
chmod +x $out/bin/update-mime-database
|
|
'';
|
|
};
|
|
xdg.mime.desktopFileUtilsPackage = mkStubPackage {
|
|
name = "desktop-file-utils";
|
|
buildScript = ''
|
|
mkdir -p $out/bin
|
|
echo '#!/bin/sh' > $out/bin/update-desktop-database
|
|
echo 'mkdir -p $out/share/applications/ && ln -s ${
|
|
./mime-expected.cache
|
|
} $out/share/applications/mimeinfo.cache' >> $out/bin/update-desktop-database
|
|
chmod +x $out/bin/update-desktop-database
|
|
'';
|
|
};
|
|
nmt.script = ''
|
|
assertFileExists home-path/share/applications/mimeinfo.cache # Check that update-desktop-database created file
|
|
# Check that update-desktop-database file matches expected
|
|
assertFileContent \
|
|
home-path/share/applications/mimeinfo.cache \
|
|
${./mime-expected.cache}
|
|
|
|
assertDirectoryExists home-path/share/mime # Check that update-mime-database created directory
|
|
assertFileExists home-path/share/mime/mime.cache # Check that update-mime-database created file
|
|
|
|
'';
|
|
};
|
|
}
|