From c1dc844a8f09b52bb4c22960115a1640f255a213 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Wed, 30 Jul 2014 23:46:14 +0200 Subject: Major rewrite: Use reclass. --- .../wheezy/classes/Admin/apt/auto/functions.yml | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 profiles/wheezy/classes/Admin/apt/auto/functions.yml (limited to 'profiles/wheezy/classes/Admin/apt/auto/functions.yml') diff --git a/profiles/wheezy/classes/Admin/apt/auto/functions.yml b/profiles/wheezy/classes/Admin/apt/auto/functions.yml new file mode 100644 index 0000000..2f1a935 --- /dev/null +++ b/profiles/wheezy/classes/Admin/apt/auto/functions.yml @@ -0,0 +1,49 @@ +parameters: + doc: + admin: + tweak: + - define routines to resolve package dependencies + tweak: + - > + _pkgdeps(){ set -e;\ + chroot /target dpkg-query \ + -Wf=',$''{Pre-Depends},$''{Depends},$''{Recommends}\n' $* 2>/dev/null \ + | sed -r \ + -e 's/[,|] *([a-z0-9.+-]+)?(:\s+)?( *[^|,]*)?/\1\n/g' \ + | sed '/^$/d'|sort -u; } + - > + _pkg2re(){ set -e;\ + echo $* \ + | sed -r \ + -e 's/\s+/\|/g;' \ + -e 's/^\|//;' \ + -e 's/([.+-])/\\\1/g;' \ + -e 's/\|$//'; } + - > + _pkgreal(){ set -e;\ + chroot /target dpkg-query \ + -Wf='$''{Package},$''{Provides},\n' \ + | sed -r \ + -e '/,,/d;' \ + -e 's/^([a-z0-9.+-]+).*[,|] *('"$(_pkg2re $*)"')[ :,]/\1/;' \ + -e '/,/d'; } + - > + _pkganddeepdeps(){ set -e;\ + rest=$*;\ + all=$rest;\ + for i in 1 2 3 4 5; do \ + deps=$(_pkgdeps $rest);\ + rest="$deps $(_pkgreal $deps)";\ + all="$all $rest";\ + done;\ + echo $all \ + | sed -r \ + -e 's/\s+/\n/g' \ + | sort -u; } + - > + _pkgessentials(){ set -e;\ + chroot /target dpkg-query \ + -Wf='$''{Package}%$''{Essential}\n' \ + | sed -r \ + -e 's/(.*)%yes/\1/;' \ + -e '/%/d'; } -- cgit v1.2.3