Files
Dark Steveneq 646b892680
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
push sheeet
2025-10-09 14:15:47 +02:00

47 lines
1.1 KiB
Nix

{
lib,
writeTextFile,
runtimeShell,
drawio,
xvfb-run,
}:
writeTextFile {
name = "${drawio.pname}-headless-${drawio.version}";
executable = true;
destination = "/bin/drawio";
text = ''
#!${runtimeShell}
# Electron really wants a configuration directory to not die with:
# "Error: Failed to get 'appData' path"
# so we give it some temp dir as XDG_CONFIG_HOME
tmpdir=$(mktemp -d)
function cleanup {
rm -rf "$tmpdir"
}
trap cleanup EXIT
# Drawio needs to run in a virtual X session, because Electron
# refuses to work and dies with an unhelpful error message otherwise:
# "The futex facility returned an unexpected error code."
XDG_CONFIG_HOME="$tmpdir" ${xvfb-run}/bin/xvfb-run --auto-display ${drawio}/bin/drawio $@
'';
meta = with lib; {
description = "xvfb wrapper around drawio";
longDescription = ''
A wrapper around drawio (draw.io) for running in headless environments.
Runs drawio under xvfb-run, with configuration going to a temporary
directory.
'';
maintainers = with maintainers; [
qyliss
tfc
];
mainProgram = "drawio";
};
}