diff options
Diffstat (limited to 'src/dist/libiquity.sh')
-rw-r--r-- | src/dist/libiquity.sh | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/dist/libiquity.sh b/src/dist/libiquity.sh new file mode 100644 index 0000000..dfd774d --- /dev/null +++ b/src/dist/libiquity.sh @@ -0,0 +1,70 @@ +# Libiquity firmware distribution +# +# Copyright (C) 2015 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +dist_libiquity_get_name() +{ + printf 'Libiquity' + return 0 +} + +dist_libiquity_get_mirrors() +{ + cat <<-EOF + http://files.libiquity.com/pub/libreboot/ + Libiquity, USA + EOF + return 0 +} + +dist_libiquity_get_versions() +{ + local mirror="${1}" + local board="${2}" + shift 2 + local dl="${WGET} -q -O -" + local version= + local versions='' + + while read -r version; do + case "${version}" in + 'libiquity-20150501') + # This version had unique ROM organization. + # Let's not bother supporting it. + continue + ;; + taurinus-201506*) + sums='SHA512SUMS' + archive="./rom/libreboot_${version}_${board}" + archive="${archive}.tar.xz" + ;; + *) + sums='SHA512SUMS' + archive="./rom/grub/libreboot_${version}" + archive="${archive}_grub_${board}.tar.xz" + ;; + esac + if ${dl} "${mirror}/${version}/${sums}" | \ + grep -F " ${archive}" >/dev/null 2>&1; then + versions="${versions} ${version}" + fi + done <<-EOF + $(${dl} "${mirror}/Manifest") + EOF + + printf '%s ' ${versions} + return 0 +} |