From 3a89b155d268332f9b7f874aa41b832de6f850ad Mon Sep 17 00:00:00 2001
From: Leo <thinkabit.ukim@gmail.com>
Date: Tue, 25 Feb 2020 19:48:49 -0300
Subject: [PATCH] main/ncurses: re-arrange terminfo contents

This re-arranges the contents of ncurses-terminfo-base so it contains
all the terminfo entries for commonly used TERMs like xterm256-color.

It also includes all terminfo entries for terminals we package like
alacritty, gnome-terminal, konsole, kitty, st, etc. And a few others
like putty, tmux and vte.

The ncurses-terminfo-base packaged increased from 94.21 kB to 126.98 kB,
a quite small increase when considering that now it is in the majority
of cases the only package one has to install instead of having to rely
on the massive ncurses-terminfo package.
---
 main/ncurses/APKBUILD | 59 ++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 53 insertions(+), 6 deletions(-)

diff --git a/main/ncurses/APKBUILD b/main/ncurses/APKBUILD
index 17102dc35b1e..ad96257b7d54 100644
--- a/main/ncurses/APKBUILD
+++ b/main/ncurses/APKBUILD
@@ -72,12 +72,13 @@ dev() {
 }
 
 terminfo() {
+	depends=""
 	pkgdesc="$pkgdesc (other terminfo files)"
 	depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
-	rm -rf $subpkgdir
-	mkdir -p $subpkgdir/usr/share $subpkgdir/usr/lib
-	mv $pkgdir/usr/share/terminfo $subpkgdir/usr/share
-	mv $pkgdir/usr/lib/terminfo $subpkgdir/usr/lib
+
+	_mv etc/terminfo
+	_mv usr/share/terminfo
+	_mv usr/lib/terminfo
 }
 
 libs() {
@@ -89,10 +90,56 @@ libs() {
 	mv "$pkgdir"/usr/lib/*.so.* "$subpkgdir"/usr/lib
 }
 
+_mv() {
+	[ -n "$subpkgdir" ] || return 1
+
+	# store directory
+	d="$(pwd -L)"
+
+	cd "$pkgdir"
+	local pattern f
+	for pattern; do
+		for f in ${pattern#/}; do # let shell expand the pattern
+			# only create dir if needed
+			if [ "${f%/*}" != "$f" ]; then
+				mkdir -p "$subpkgdir/${f%/*}"
+			fi
+			mv -v "$pkgdir"/$f "$subpkgdir/${f%/*}"
+			# cleanup
+			rmdir -p "$f" || rmdir -p "${f%/*}" || true
+		done
+	done
+}
+
 base() {
+	depends=""
 	pkgdesc="Descriptions of common terminals"
-	mkdir -p "$subpkgdir"/etc
-	mv "$pkgdir"/etc/terminfo "$subpkgdir"/etc/
+
+	_mv usr/share/terminfo/x/xterm-256color
+	_mv usr/share/terminfo/a/alacritty
+	_mv usr/share/terminfo/t/tmux
+	_mv usr/share/terminfo/t/tmux-256color
+	_mv usr/share/terminfo/t/terminator
+	_mv usr/share/terminfo/t/terminology*
+	_mv usr/share/terminfo/v/vte
+	_mv usr/share/terminfo/v/vte-256color
+	_mv usr/share/terminfo/g/gnome
+	_mv usr/share/terminfo/g/gnome-256color
+	_mv usr/share/terminfo/k/kitty
+	_mv usr/share/terminfo/k/konsole
+	_mv usr/share/terminfo/k/konsole-256color
+	_mv usr/share/terminfo/k/konsole-linux
+	_mv usr/share/terminfo/p/putty
+	_mv usr/share/terminfo/p/putty-256color
+	_mv usr/share/terminfo/r/rxvt
+	_mv usr/share/terminfo/r/rxvt-256color
+	_mv usr/share/terminfo/s/st-0*
+	_mv usr/share/terminfo/s/st-256color
+	_mv etc/terminfo
+
+	mkdir -p "$pkgdir"/etc/terminfo/s
+	mv "$subpkgdir"/etc/terminfo/s/sun "$pkgdir"/etc/terminfo/s
+	mv "$subpkgdir"/etc/terminfo/v "$pkgdir"/etc/terminfo
 }
 
 static() {
-- 
GitLab