aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Neumärker <xdch47@posteo.de>2019-02-20 21:18:05 +0100
committerVadim Misbakh-Soloviov <mva@gentoo.org>2020-02-20 01:47:24 +0700
commit4560ce6d6f93ebd5823723284708aa16ee7cc37c (patch)
treeb28cb35bf75c3ed9e85a90aaa36005fecc0dcb36 /src/_gentoo_repos
parent_portage: add configure and prepare,test completions (diff)
downloadzsh-completion-4560ce6d6f93ebd5823723284708aa16ee7cc37c.tar.gz
zsh-completion-4560ce6d6f93ebd5823723284708aa16ee7cc37c.tar.bz2
zsh-completion-4560ce6d6f93ebd5823723284708aa16ee7cc37c.zip
Merge Pull Request #18 (squashed)
[PATCH 1/6] _gentoo_repos: split functions into 2 files [PATCH 2/6] _portage: improve completion for ebuild and emaint [PATCH 3/6] _eselect: rewrite for more generic completion [PATCH 4/6] add EPREFIX support [PATCH 5/6] _eselect: multi_parts timezone completion [PATCH 6/6] _eselect: set/enable filter for lists > 10 Signed-off-by: Vadim Misbakh-Soloviov <mva@gentoo.org>
Diffstat (limited to 'src/_gentoo_repos')
-rw-r--r--src/_gentoo_repos64
1 files changed, 10 insertions, 54 deletions
diff --git a/src/_gentoo_repos b/src/_gentoo_repos
index 85f3936..e5acf36 100644
--- a/src/_gentoo_repos
+++ b/src/_gentoo_repos
@@ -11,22 +11,22 @@ _gentoo_repos() {
overlay_paths=();
result=();
- if [[ -e /usr/share/portage/config/repos.conf || -e /etc/portage/repos.conf ]]; then
- main_repo=$(_repos_conf DEFAULT main-repo)
- main_repo_path=$(_repos_conf ${main_repo} location)
+ if [[ -e ${EPREFIX}/usr/share/portage/config/repos.conf || -e ${EPREFIX}/etc/portage/repos.conf ]]; then
+ main_repo=$(_gentoo_repos_conf DEFAULT main-repo)
+ main_repo_path=$(_gentoo_repos_conf ${main_repo} location)
- for overlay in $(_repos_conf -l); do
- overlay_paths+=($(_repos_conf ${overlay} location))
+ for overlay in $(_gentoo_repos_conf -l); do
+ overlay_paths+=($(_gentoo_repos_conf ${overlay} location))
done
- source /etc/make.conf 2>/dev/null
- source /etc/portage/make.conf 2>/dev/null
+ source ${EPREFIX}/etc/make.conf 2>/dev/null
+ source ${EPREFIX}/etc/portage/make.conf 2>/dev/null
overlay_paths+=(${(@)PORTDIR_OVERLAY})
else
- source /usr/share/portage/config/make.globals 2>/dev/null
- source /etc/make.conf 2>/dev/null
- source /etc/portage/make.conf 2>/dev/null
+ source ${EPREFIX}/usr/share/portage/config/make.globals 2>/dev/null
+ source ${EPREFIX}/etc/make.conf 2>/dev/null
+ source ${EPREFIX}/etc/portage/make.conf 2>/dev/null
main_repo_path="${PORTDIR}"
overlay_paths=(${(@)PORTDIR_OVERLAY})
@@ -43,50 +43,6 @@ _gentoo_repos() {
echo ${(u)result}
}
-_repos_conf() {
- local v file insection section arr secname
-
- secname=();
-
- for file in /usr/share/portage/config/repos.conf \
- /etc/portage/repos.conf \
- /etc/portage/repos.conf/*.conf; do
-
- [[ -f ${file} ]] || continue
- insection=0
- declare -A arr
- IFS='= '
-
- while read -r name value; do
- [[ -z ${name} || ${name} == '#'* ]] && continue
-
- if [[ (${name} == '['*']') && (-z ${value}) ]]; then
- value=${name//(\]|\[)}
- name="section"
- fi
- arr[${name}]=${value}
-
- if [[ ${insection} == 1 && ${name} == "section" ]]; then
- break
- elif [[ ${name} == "section" ]]; then
- [[ ${value} == ${1} ]] && insection=1
- secname+=(${value})
- elif [[ ${insection} == 1 ]]; then
- if [[ ${name} == ${2} ]]; then
- v=${value}
- fi
- fi
- continue
- done < ${file}
- done
-
- if [[ ${1} == "-l" ]]; then
- echo "${(@u)secname}"
- else
- echo "${v}"
- fi
-}
-
_gentoo_repos "$@"
# vim: set et sw=2 ts=2 ft=zsh: