X-Git-Url: https://iankelling.org/git/?p=distro-functions;a=blobdiff_plain;f=src%2Fidentify-distros;h=4e461b014ea74113a183cd49e73f5aa1f55517a3;hp=a3bc4028f26c6559e4d4901cddc5aef2a17da82d;hb=HEAD;hpb=2494932a3b4425bd693219bd30c4ee19969dd4cc diff --git a/src/identify-distros b/src/identify-distros index a3bc402..fa66172 100644 --- a/src/identify-distros +++ b/src/identify-distros @@ -1,5 +1,12 @@ #!/bin/bash -# Copyright (C) 2014 Ian Kelling +# I, Ian Kelling, follow the GNU license recommendations at +# https://www.gnu.org/licenses/license-recommendations.en.html. They +# recommend that small programs, < 300 lines, be licensed under the +# Apache License 2.0. This file contains or is part of one or more small +# programs. If a small program grows beyond 300 lines, I plan to switch +# its license to GPL. + +# Copyright 2024 Ian Kelling # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -29,19 +36,20 @@ distro-name() { } distro-name-compat() { - local x=$(distro-name) + local x + x=$(distro-name) case $x in trisquel) echo ubuntu ;; *) - echo $x + printf "%s\n" "$x" ;; esac } distro-name-ver() { - echo $(distro-name)$(debian-archive) + printf "%s\n" "$(distro-name)$(debian-archive)" } distro-num() { @@ -65,7 +73,8 @@ debian-archive() { # o = origin # c = component (licensing component) # l = label (Debian{,-Security,-Updates}) - local d=$(distro-name) + local d + d=$(distro-name) # goto b for archive lines we are interested in, a for lines we arent # print priority + archive name. priority is in # the previous line from the archive line. @@ -83,7 +92,7 @@ EOF shortest=$name continue fi - if [[ $pri != $highpri ]]; then + if [[ $pri != "$highpri" ]]; then break fi if (( ${#shortest} > ${#name} )); then @@ -96,8 +105,10 @@ EOF # formatted for use in pfile() in package-manager-abstractions positive-origins() { isdeb || return 0 - local archive expression pri name highpri shortest - local policy="${1:-$(apt-cache policy)}" || return $? + local archive expression pri name highpri shortest policy + # In theory we might want a policy subset, we could alter this to pass + # it in. + policy="(apt-cache policy)" # a = archive # n = codename # o = origin @@ -130,12 +141,14 @@ isdebian-stable() { debian-codename() { isdeb || return 0 - local policy="$(apt-cache policy)" || return $? + local policy + policy="$(apt-cache policy)" archive=$(debian-archive "$policy") - echo "$policy" | sed -rn "s/^.*a=$archive,n=([a-z]+).*/\1/p;T;q" || [[ $? == 141 ]] + printf "%s\n" "$policy" | sed -rn "s/^.*a=$archive,n=([a-z]+).*/\1/p;T;q" || [[ $? == 141 ]] } debian-codename-compat() { - local n=$(debian-codename) + local n + n=$(debian-codename) case $n in flidas) echo xenial