From: Michael Tremer Date: Sun, 29 Nov 2009 16:24:48 +0000 (+0100) Subject: naoki: Massively speed up of dep resolvation. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e09f577dae1f5e31514cd8b95797190b60be9126;p=ipfire-3.x.git naoki: Massively speed up of dep resolvation. --- diff --git a/tools/common-package-functions b/tools/common-package-functions index 078d187bb..5bc707bfc 100644 --- a/tools/common-package-functions +++ b/tools/common-package-functions @@ -3,14 +3,8 @@ function listmatch() { local arg=${1} shift - - local value - for value in $@; do - if [ "${arg}" == "${value}" ]; then - return 0 - fi - done - return 1 + + grep -q "<${arg}>" <<<$@ } function listremove() { @@ -44,31 +38,23 @@ function is_package() { } function find_package() { - local package + local package=${1} local i - local found - for package in $@; do - #log DEBUG "Searching for package \"${package}\"." - - if [ -e "${DIR_PKGS}/${package}" ]; then - echo "${package}" - continue - fi - - found=0 - for i in $(package_list); do - if [ "${i##*/}" = "${package}" ]; then - echo "${i}" - found=1 - break - fi - done - [ "${found}" = "1" ] && continue + #log DEBUG "Searching for package \"${package}\"." - return 1 + if [ -e "${DIR_PKGS}/${package}" ]; then + echo "${package}" + return 0 + fi + + for i in $(package_list); do + if [ "${i##*/}" = "${package}" ]; then + echo "${i}" + return 0 + fi done - return 0 + return 1 } function find_packages() { @@ -101,7 +87,7 @@ function package_repos() { ## Needs to be cached... # Causes massive speed impact -function package_list() { +function __package_list() { local package local repo @@ -121,6 +107,15 @@ function package_list() { done } +function package_list() { + if [ -z "${__PACKAGE_LIST}" ]; then + log CACHE "Building packages_list." + export __PACKAGE_LIST=$(__package_list) + fi + + echo "${__PACKAGE_LIST}" +} + function package_profile() { if [ "${1}" = "--wiki" ]; then echo "TODO: WIKI OUTPUT" diff --git a/tools/common-ui-functions b/tools/common-ui-functions index 943b19794..36bda0ca9 100644 --- a/tools/common-ui-functions +++ b/tools/common-ui-functions @@ -71,7 +71,7 @@ function log() { local facility=${1} shift - if [ "${facility}" == "DEBUG" ] && [ "${DEBUG}" != "1" ]; then + if [ "${facility}" == "DEBUG" -a "${DEBUG}" != "1" ]; then return 0 fi diff --git a/tools/naoki-include b/tools/naoki-include index dd9549064..7321a3485 100644 --- a/tools/naoki-include +++ b/tools/naoki-include @@ -13,3 +13,6 @@ export NAOKI_INCLUDE=1 . ${BASEDIR}/tools/naoki-functions log DEBUG "Started up naoki instance with pid $$" + +# Build cache +export __PACKAGE_LIST=$(package_list)