forked from mirrors/nixpkgs
010e2e5b12
The libreoffice derivation does not copy the necessary files to the output. Hence, we need to unpack the source again
33 lines
1.4 KiB
Nix
33 lines
1.4 KiB
Nix
{ lib, runCommand
|
|
, libreoffice, dbus, bash, substituteAll
|
|
, dolphinTemplates ? true
|
|
}:
|
|
runCommand libreoffice.name {
|
|
inherit (libreoffice) jdk meta;
|
|
inherit dbus 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
|
|
'')
|
|
|