summaryrefslogtreecommitdiff
path: root/net-firewall/nftables/files/man-pages
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-04-12 03:41:30 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-04-12 03:41:30 +0100
commit623ee73d661e5ed8475cb264511f683407d87365 (patch)
tree993eb27c93ec7a2d2d19550300d888fc1fed9e69 /net-firewall/nftables/files/man-pages
parentceeeb463cc1eef97fd62eaee8bf2196ba04bc384 (diff)
gentoo Easter resync : 12.04.2020
Diffstat (limited to 'net-firewall/nftables/files/man-pages')
-rw-r--r--net-firewall/nftables/files/man-pages/gen-manpages.bash72
1 files changed, 72 insertions, 0 deletions
diff --git a/net-firewall/nftables/files/man-pages/gen-manpages.bash b/net-firewall/nftables/files/man-pages/gen-manpages.bash
new file mode 100644
index 000000000000..a2223d3dd5be
--- /dev/null
+++ b/net-firewall/nftables/files/man-pages/gen-manpages.bash
@@ -0,0 +1,72 @@
+#!/bin/bash
+#
+# create manpages for nftables
+
+declare -A MAN_PAGES
+
+MAN_PAGES=(
+ [nft.8]="nft.txt"
+ [libnftables-json.5]="libnftables-json.adoc"
+ [libnftables.3]="libnftables.adoc"
+)
+
+build_manpages() {
+ tar axf "${distfile}" -C "${srcdir}" || return
+
+ pushd "${srcdir}/${version}/doc" > /dev/null || return
+ local manpage
+ for manpage in "${!MAN_PAGES[@]}"; do
+ a2x -L --doctype manpage --format manpage -D . "${MAN_PAGES[${manpage}]}" || return
+ done
+ popd > /dev/null || return
+
+ local -a tarfiles
+ readarray -t tarfiles < <(printf -- "${version}/doc/%s\\n" "${!MAN_PAGES[@]}")
+
+ tar -Jc --owner='root:0' --group='root:0' \
+ --transform="s:^${version}/doc:${version}-manpages:" \
+ -f "${version}-manpages.tar.xz" \
+ -C "${srcdir}" \
+ "${tarfiles[@]}" || return
+
+ rm -rf "${srcdir:?}/${version}" || return
+}
+
+main() {
+ shopt -s failglob
+ local version="${1}" srcdir="${0%/*}"
+
+ if [[ -z ${version} ]]; then
+ # shellcheck disable=SC2016
+ version=$(
+ find . -maxdepth 1 -type d -a -name 'nftables-*' -printf '%P\0' 2>/dev/null \
+ | LC_COLLATE=C sort -z \
+ | sed -z -n '${p;Q}' \
+ | tr -d '\000'
+ )
+ if [[ -z ${version} ]]; then
+ # shellcheck disable=SC2016
+ version=$(
+ find . -maxdepth 3 -mindepth 3 -type f -a -name 'nftables-*.ebuild' -printf '%P\0' 2>/dev/null \
+ | LC_COLLATE=C sort -z \
+ | sed -r -z -n '${s:.*/::;s:-r[0-9]+::;s:[.]ebuild::;p;Q}' \
+ | tr -d '\000'
+ )
+ if [[ -z ${version} ]]; then
+ printf 'Usage %s <version>\n' "${0}" >&2
+ return 1
+ fi
+ fi
+ elif [[ ${version} =~ [0-9.]+ ]]; then
+ version="nftables-${version}"
+ fi
+
+ local distdir distfile
+ local -a distfiles
+ distdir="$(portageq distdir)" || return
+ distfiles=( "${distdir}/${version}.tar."* ) || return
+ distfile="${distfiles[-1]}"
+ build_manpages || return
+}
+
+main "${@}"