33 lines
1.5 KiB
Nix
33 lines
1.5 KiB
Nix
{ lib, runCommand
|
|
, libreoffice, dbus, bash, substituteAll
|
|
, coreutils, gnugrep
|
|
, dolphinTemplates ? true
|
|
}:
|
|
runCommand libreoffice.name {
|
|
inherit (libreoffice) jdk meta;
|
|
inherit coreutils dbus gnugrep libreoffice bash;
|
|
} (''
|
|
mkdir -p "$out/bin"
|
|
substituteAll "${./wrapper.sh}" "$out/bin/soffice"
|
|
chmod a+x "$out/bin/soffice"
|
|
|
|
for i in $(ls "${libreoffice}/bin/"); do
|
|
test "$i" = "soffice" || ln -s soffice "$out/bin/$(basename "$i")"
|
|
done
|
|
|
|
mkdir -p "$out/share"
|
|
ln -s "${libreoffice}/share"/* $out/share
|
|
'' + lib.optionalString dolphinTemplates ''
|
|
# Add templates to dolphin "Create new" menu - taken from debian
|
|
|
|
# We need to unpack the core source since the necessary files aren't available in the libreoffice output
|
|
unpackFile "${libreoffice.src}"
|
|
|
|
install -D "${libreoffice.name}"/extras/source/shellnew/soffice.* --target-directory="$out/share/templates/.source"
|
|
|
|
cp ${substituteAll {src = ./soffice-template.desktop; app="Writer"; ext="odt"; type="text"; }} $out/share/templates/soffice.odt.desktop
|
|
cp ${substituteAll {src = ./soffice-template.desktop; app="Calc"; ext="ods"; type="spreadsheet"; }} $out/share/templates/soffice.ods.desktop
|
|
cp ${substituteAll {src = ./soffice-template.desktop; app="Impress"; ext="odp"; type="presentation";}} $out/share/templates/soffice.odp.desktop
|
|
cp ${substituteAll {src = ./soffice-template.desktop; app="Draw"; ext="odg"; type="drawing"; }} $out/share/templates/soffice.odg.desktop
|
|
'')
|
|
|