blob: c70511fa6528c624ea3ce0fa28df917cec037e92 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
{ 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 ${drawio}/bin/drawio $@
'';
meta = with lib; {
description = "xvfb wrapper around drawio";
longDescription = ''
A wrapper around drawio for running in headless environments.
Runs drawio under xvfb-run, with configuration going to a temporary
directory.
'';
maintainers = with maintainers; [ qyliss tfc ];
};
}
|