This wrapper is useful independently of pandoc-drawio-filter — it's useful in any other situation in which somebody might want to use draw.io diagrams in a build process. So, make it accessible from the top level to facilitate reuse.main
parent
1d7db1b9e4
commit
3e3d98cbb3
@ -0,0 +1,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 ]; |
||||||
|
}; |
||||||
|
} |
Loading…
Reference in new issue