mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-23 22:00:42 +00:00
44 lines
1 KiB
Nix
44 lines
1 KiB
Nix
|
{
|
||
|
writeShellScriptBin,
|
||
|
makeDesktopItem,
|
||
|
symlinkJoin,
|
||
|
}: {
|
||
|
html,
|
||
|
pathName ? "neovim-flake",
|
||
|
projectName ? pathName,
|
||
|
name ? "${pathName}-help",
|
||
|
}: let
|
||
|
helpScript = writeShellScriptBin name ''
|
||
|
set -euo pipefail
|
||
|
|
||
|
if [[ ! -v BROWSER || -z $BROWSER ]]; then
|
||
|
for candidate in xdg-open open w3m; do
|
||
|
BROWSER="$(type -P $candidate || true)"
|
||
|
if [[ -x $BROWSER ]]; then
|
||
|
break;
|
||
|
fi
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
if [[ ! -v BROWSER || -z $BROWSER ]]; then
|
||
|
echo "$0: unable to start a web browser; please set \$BROWSER"
|
||
|
exit 1
|
||
|
else
|
||
|
exec "$BROWSER" "${html}/share/doc/${pathName}/index.xhtml"
|
||
|
fi
|
||
|
'';
|
||
|
|
||
|
desktopItem = makeDesktopItem {
|
||
|
name = "${pathName}-manual";
|
||
|
desktopName = "${projectName} Manual";
|
||
|
genericName = "View ${projectName} documentation in a web browser";
|
||
|
icon = "nix-snowflake";
|
||
|
exec = "${helpScript}/bin/${name}";
|
||
|
categories = ["System"];
|
||
|
};
|
||
|
in
|
||
|
symlinkJoin {
|
||
|
inherit name;
|
||
|
paths = [helpScript desktopItem];
|
||
|
}
|