blob: c4e9d82febc191558ea62ca684c27531a22a4842 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit bash-completion-r1 flag-o-matic toolchain-funcs xdg
DESCRIPTION="The missing terminal file browser for X"
HOMEPAGE="https://github.com/jarun/nnn"
SRC_URI="https://github.com/jarun/nnn/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="amd64 ~ppc64 ~x86"
IUSE="8contexts colemak colemak-dh emoji gitstatus icons namefirst nerdfonts pcre qsort +readline restorepreview"
DEPEND="sys-libs/ncurses:=
pcre? ( dev-libs/libpcre )
readline? ( sys-libs/readline:= )
elibc_musl? ( sys-libs/fts-standalone )"
BDEPEND="virtual/pkgconfig"
RDEPEND="${DEPEND}"
REQUIRED_USE="?? ( icons nerdfonts emoji )
?? ( colemak colemak-dh )"
src_prepare() {
default
tc-export CC
use elibc_musl && append-flags "-lfts"
# When using nnn's bundled patches, the 'install' target should not depend
# on 'all'. See: https://github.com/jarun/nnn/issues/1493
sed -i -e 's/install: all/install:/' Makefile || die "sed failed"
# The Makefile uses O_COLEMAK-DH to control the Colemak-DH patch, but that
# does not work with the array approach to make options below. Hence, we
# simply rename it to O_COLEMAK_DH.
sed -i -e 's/O_COLEMAK-DH/O_COLEMAK_DH/' Makefile || die "sed failed"
}
src_compile() {
nnn_opts=(
O_NORL=$(usex readline 0 1)
O_PCRE=$(usex pcre 1 0)
O_CTX8=$(usex 8contexts 1 0)
O_ICONS=$(usex icons 1 0)
O_NERD=$(usex nerdfonts 1 0)
O_EMOJI=$(usex emoji 1 0)
O_QSORT=$(usex qsort 1 0)
# nnn's user-submitted patches
O_COLEMAK=$(usex colemak 1 0)
O_COLEMAK_DH=$(usex colemak-dh 1 0)
O_GITSTATUS=$(usex gitstatus 1 0)
O_NAMEFIRST=$(usex namefirst 1 0)
O_RESTOREPREVIEW=$(usex restorepreview 1 0)
)
emake "${nnn_opts[@]}"
}
src_install() {
emake PREFIX="${EPREFIX}/usr" DESTDIR="${D}" install
emake PREFIX="${EPREFIX}/usr" DESTDIR="${D}" install-desktop
newbashcomp misc/auto-completion/bash/nnn-completion.bash nnn
insinto /usr/share/fish/vendor_completions.d
doins misc/auto-completion/fish/nnn.fish
insinto /usr/share/zsh/site-functions
doins misc/auto-completion/zsh/_nnn
einstalldocs
insinto /usr/share/nnn
insopts -m0755
doins -r plugins
fperms 0644 /usr/share/nnn/plugins/README.md
}
pkg_postinst() {
xdg_pkg_postinst
elog "nnn plugins are installed to /usr/share/nnn/plugins/, but nnn does not"
elog "load them fom this directory. You will need to copy/symlink them to"
elog "~/.config/nnn/plugins/ if you want to use them."
elog "Note that some plugins have runtime dependencies that may need to be installed."
elog "Refer to the individual plugin's in-file documentation for more information."
if use icons; then
elog "In order for file icons to work, your terminal needs to use icons-in-terminal."
elog "See https://github.com/sebastiencs/icons-in-terminal"
elif use nerdfonts; then
elog "In order for file icons to work, your terminal needs to use a patched nerdfont."
elog "See https://www.nerdfonts.com/"
elif use emoji; then
elog "In order for file icons to work, your terminal needs to use a font that"
elog "includes standard unicode emoji."
fi
}
|