asciidoc: add enableExtraPlugins expression argument

'enableExtraPlugins = true' enables all the extra plugins (filters and
backends) that are available in the expression. This simplifies the
configuration for users who want to have the fullest possible asciidoc
configuration (not needing to enable each individual plugin).

+28 -15
+28 -15
pkgs/tools/typesetting/asciidoc/default.nix
··· 22 22 , gnused ? null 23 23 , coreutils ? null 24 24 25 + # if true, enable all the below filters and backends 26 + , enableExtraPlugins ? false 27 + 28 + # unzip is needed to extract filter and backend plugins 25 29 , unzip ? null 26 30 # filters 27 31 , enableDitaaFilter ? false, jre ? null ··· 58 62 coreutils != null; 59 63 60 64 # filters 61 - assert (enableDitaaFilter || enableMscgenFilter || enableDiagFilter || enableQrcodeFilter || enableAafigureFilter) -> unzip != null; 62 - assert enableDitaaFilter -> jre != null; 63 - assert enableMscgenFilter -> mscgen != null; 64 - assert enableDiagFilter -> blockdiag != null && seqdiag != null && actdiag != null && nwdiag != null; 65 - assert enableMatplotlibFilter -> matplotlib != null && numpy != null; 66 - assert enableAafigureFilter -> aafigure != null && recursivePthLoader != null; 65 + assert enableExtraPlugins || enableDitaaFilter || enableMscgenFilter || enableDiagFilter || enableQrcodeFilter || enableAafigureFilter -> unzip != null; 66 + assert enableExtraPlugins || enableDitaaFilter -> jre != null; 67 + assert enableExtraPlugins || enableMscgenFilter -> mscgen != null; 68 + assert enableExtraPlugins || enableDiagFilter -> blockdiag != null && seqdiag != null && actdiag != null && nwdiag != null; 69 + assert enableExtraPlugins || enableMatplotlibFilter -> matplotlib != null && numpy != null; 70 + assert enableExtraPlugins || enableAafigureFilter -> aafigure != null && recursivePthLoader != null; 67 71 # backends 68 - assert (enableDeckjsBackend || enableOdfBackend) -> unzip != null; 72 + assert enableExtraPlugins || enableDeckjsBackend || enableOdfBackend -> unzip != null; 69 73 70 74 let 71 75 76 + _enableDitaaFilter = enableExtraPlugins || enableDitaaFilter; 77 + _enableMscgenFilter = enableExtraPlugins || enableMscgenFilter; 78 + _enableDiagFilter = enableExtraPlugins || enableDiagFilter; 79 + _enableQrcodeFilter = enableExtraPlugins || enableQrcodeFilter; 80 + _enableMatplotlibFilter = enableExtraPlugins || enableMatplotlibFilter; 81 + _enableAafigureFilter = enableExtraPlugins || enableAafigureFilter; 82 + _enableDeckjsBackend = enableExtraPlugins || enableDeckjsBackend; 83 + _enableOdfBackend = enableExtraPlugins || enableOdfBackend; 84 + 72 85 # 73 86 # filters 74 87 # ··· 141 154 patchPhase = with stdenv.lib; '' 142 155 mkdir -p "$out/etc/asciidoc/filters" 143 156 mkdir -p "$out/etc/asciidoc/backends" 144 - '' + optionalString enableDitaaFilter '' 157 + '' + optionalString _enableDitaaFilter '' 145 158 echo "Extracting ditaa filter" 146 159 unzip -d "$out/etc/asciidoc/filters/ditaa" "${ditaaFilterSrc}" 147 160 sed -i -e "s|java -jar|${jre}/bin/java -jar|" \ 148 161 "$out/etc/asciidoc/filters/ditaa/ditaa2img.py" 149 - '' + optionalString enableMscgenFilter '' 162 + '' + optionalString _enableMscgenFilter '' 150 163 echo "Extracting mscgen filter" 151 164 unzip -d "$out/etc/asciidoc/filters/mscgen" "${mscgenFilterSrc}" 152 165 sed -i -e "s|filter-wrapper.py mscgen|filter-wrapper.py ${mscgen}/bin/mscgen|" \ 153 166 "$out/etc/asciidoc/filters/mscgen/mscgen-filter.conf" 154 - '' + optionalString enableDiagFilter '' 167 + '' + optionalString _enableDiagFilter '' 155 168 echo "Extracting diag filter" 156 169 unzip -d "$out/etc/asciidoc/filters/diag" "${diagFilterSrc}" 157 170 sed -i \ ··· 161 174 -e "s|filter='nwdiag|filter=\'${nwdiag}/bin/nwdiag|" \ 162 175 -e "s|filter='packetdiag|filter=\'${nwdiag}/bin/packetdiag|" \ 163 176 "$out/etc/asciidoc/filters/diag/diag-filter.conf" 164 - '' + optionalString enableQrcodeFilter '' 177 + '' + optionalString _enableQrcodeFilter '' 165 178 echo "Extracting qrcode filter" 166 179 unzip -d "$out/etc/asciidoc/filters/qrcode" "${qrcodeFilterSrc}" 167 180 sed -i -e "s|systemcmd('qrencode|systemcmd('${qrencode}/bin/qrencode|" \ 168 181 "$out/etc/asciidoc/filters/qrcode/qrcode2img.py" 169 - '' + optionalString enableMatplotlibFilter '' 182 + '' + optionalString _enableMatplotlibFilter '' 170 183 echo "Extracting mpl (matplotlib) filter" 171 184 mkdir -p "$out/etc/asciidoc/filters/mpl" 172 185 tar xvf "${matplotlibFilterSrc}" -C "$out/etc/asciidoc/filters/mpl" --strip-components=1 ··· 177 190 numpy_path="$(toPythonPath ${numpy})" 178 191 sed -i "/^import.*sys/asys.path.append(\"$matplotlib_path\"); sys.path.append(\"$numpy_path\");" \ 179 192 "$out/etc/asciidoc/filters/mpl/mplw.py" 180 - '' + optionalString enableAafigureFilter '' 193 + '' + optionalString _enableAafigureFilter '' 181 194 echo "Extracting aafigure filter" 182 195 unzip -d "$out/etc/asciidoc/filters/aafigure" "${aafigureFilterSrc}" 183 196 # Add aafigure to sys.path (and it needs recursive-pth-loader) ··· 185 198 aafigure_path="$(toPythonPath ${aafigure})" 186 199 sed -i "/^import.*sys/asys.path.append(\"$pth_loader_path\"); sys.path.append(\"$aafigure_path\"); import sitecustomize" \ 187 200 "$out/etc/asciidoc/filters/aafigure/aafig2img.py" 188 - '' + optionalString enableDeckjsBackend '' 201 + '' + optionalString _enableDeckjsBackend '' 189 202 echo "Extracting deckjs backend" 190 203 unzip -d "$out/etc/asciidoc/backends/deckjs" "${deckjsBackendSrc}" 191 - '' + optionalString enableOdfBackend '' 204 + '' + optionalString _enableOdfBackend '' 192 205 echo "Extracting odf backend (odt + odp)" 193 206 unzip -d "$out/etc/asciidoc/backends/odt" "${odtBackendSrc}" 194 207 unzip -d "$out/etc/asciidoc/backends/odp" "${odpBackendSrc}"