commit: ed6c54d9c660286fb1d0620e4c7f7ff00b642b57 Author: Mike Frysinger <vapier <AT> gentoo <DOT> org> AuthorDate: Mon May 18 15:52:12 2015 +0000 Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org> CommitDate: Mon May 18 15:53:41 2015 +0000 URL: https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=ed6c54d9
crossdev/emerge-wrapper: merge repos.conf parsers The crossdev code had a more full-featured parser of the repos.conf output than the emerge-wrapper. The latter failed to include the last overlay in the list leading to ugly warnings like: /usr/bin/emerge-wrapper: line 48: /eclass/toolchain-funcs.eclass: No such file or directory /usr/bin/emerge-wrapper: line 49: tc-arch: command not found URL: https://bugs.gentoo.org/546748 Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org> crossdev | 10 ++++++++++ wrappers/emerge-wrapper | 15 +-------------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/crossdev b/crossdev index 62b6c3d..0691641 100755 --- a/crossdev +++ b/crossdev @@ -351,6 +351,15 @@ parse_repo_config() { fi } +# Used by --show-repo-cfg to share the parser logic with other tools. +show_repo_cfg() { + local var=$1 + unset SEARCH_OVERLAYS + parse_repo_config + echo "${!var}" + exit 0 +} + setup_portage_vars() { local arch=${ARCH} arch_set=${ARCH+set} local chost=${CHOST} chost_set=${CHOST+set} @@ -602,6 +611,7 @@ while [[ $# -gt 0 ]] ; do --show-target-cfg) SHOW_TARGET_CFG="yes";; --init-target) INIT_TARGET_ONLY="yes";; --show-fail-log) SHOW_FAIL_LOG="yes";; + --show-repo-cfg) show_repo_cfg "$2";; -P|--portage) UOPTS="${UOPTS} $2"; shift;; -b|-d|-p|-v|-q) UOPTS="${UOPTS} $1";; -pv|-vp) UOPTS="${UOPTS} -p -v";; diff --git a/wrappers/emerge-wrapper b/wrappers/emerge-wrapper index 4056601..e375025 100755 --- a/wrappers/emerge-wrapper +++ b/wrappers/emerge-wrapper @@ -116,20 +116,7 @@ import_vars="DISTDIR MAKEOPTS GENTOO_MIRRORS" eval $(portageq envvar -v CBUILD ${import_vars}) export CBUILD -# Probably shouldn't hardcode "gentoo" here. -MAIN_REPO_PATH=$(portageq repositories_configuration / | gawk ' - { - if ($1 == "main-repo") { - main_repo = $NF - } else if ($1 ~ /^\[/) { - locs[repo_name] = loc - repo_name = gensub(/\[([^\]]*)\]/, "\\1", "", $1) - } else if ($1 == "location") { - loc = $3 - } - } - END { print(locs[main_repo]) } -') +MAIN_REPO_PATH=$(crossdev --show-repo-cfg MAIN_REPO_PATH) # Get default CHOST value from program name CHOST=${0##*/}