+
+distro-name-ver() {
+ echo `distro-name``debian-archive`
+}
+
+debian-archive() {
+ isdeb || return 0
+ local archive
+ local policy="${1:-$(apt-cache policy)}"
+ # a = archive
+ # n = codename
+ # o = origin
+ # c = component (licensing component)
+ # l = label (Debian{,-Security,-Updates})
+ { for archive in stable testing unstable; do
+ # print priority + archive name. priority is in
+ # the previous line after finding the archive.
+ read -rd '' expression <<EOF ||:
+/o=Debian,a=$archive,.*l=Debian,c=main/{x;s/^ *([-0-9]+).*/\1 $archive/p;q};h
+EOF
+ echo "$policy" | sed -rn "$expression"
+ done
+ } | sort -rn | head -n1 | grep -oE "\w+$"
+}
+
+
+isdebian-testing() {
+ [[ $(debian-archive) == testing ]]
+}
+# I only do testing or stable.
+isdebian-stable() {
+ [[ $(debian-archive) == stable ]]
+}
+
+debian-codename() {
+ isdeb || return 0
+ local policy="$(apt-cache policy)"
+ archive=$(debian-archive "$policy")
+ echo "$policy" | sed -rn "s/^.*a=$archive,n=([a-z]+).*/\1/p;T;q"
+}