From 4560ce6d6f93ebd5823723284708aa16ee7cc37c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Neum=C3=A4rker?= Date: Wed, 20 Feb 2019 21:18:05 +0100 Subject: 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 --- src/_gentoo_repos | 64 +++++++++---------------------------------------------- 1 file changed, 10 insertions(+), 54 deletions(-) (limited to 'src/_gentoo_repos') 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: -- cgit v1.2.3