Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
44 lines
1.2 KiB
Bash
44 lines
1.2 KiB
Bash
# shellcheck shell=bash
|
|
|
|
# Setup hook that installs specified desktop items.
|
|
#
|
|
# Example usage in a derivation:
|
|
#
|
|
# { …, makeDesktopItem, copyDesktopItems, … }:
|
|
#
|
|
# let desktopItem = makeDesktopItem { … }; in
|
|
# stdenv.mkDerivation {
|
|
# …
|
|
# nativeBuildInputs = [ copyDesktopItems ];
|
|
#
|
|
# desktopItems = [ desktopItem ];
|
|
# …
|
|
# }
|
|
#
|
|
# This hook will copy files which are either given by full path
|
|
# or all '*.desktop' files placed inside the 'share/applications'
|
|
# folder of each `desktopItems` argument.
|
|
|
|
postInstallHooks+=(copyDesktopItems)
|
|
|
|
copyDesktopItems() {
|
|
if [ "${dontCopyDesktopItems-}" = 1 ]; then return; fi
|
|
|
|
if [ -z "$desktopItems" ]; then
|
|
return
|
|
fi
|
|
|
|
applications="${!outputBin}/share/applications"
|
|
for desktopItem in $desktopItems; do
|
|
if [[ -f "$desktopItem" ]]; then
|
|
echo "Copying '$desktopItem' into '${applications}'"
|
|
install -D -m 444 -t "${applications}" "$desktopItem"
|
|
else
|
|
for f in "$desktopItem"/share/applications/*.desktop; do
|
|
echo "Copying '$f' into '${applications}'"
|
|
install -D -m 444 -t "${applications}" "$f"
|
|
done
|
|
fi
|
|
done
|
|
}
|