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