libdevuansdk/zlibs/cache

77 lines
2.3 KiB
Bash

#!/usr/bin/env zsh
# Copyright (c) 2017 Dyne.org Foundation
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
#
# This file is part of libdevuansdk
#
# This source code 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 software 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 source code. If not, see <http://www.gnu.org/licenses/>.
aptcache() {
fn aptcache "$*"
req=(aptcachedir watdo werdo APT_CACHE)
local watdo="$1"
local werdo="$2"
ckreq || return 1
[[ $APT_CACHE = 1 ]] || return 0
case "$watdo" in
on)
act "mounting local apt cache"
sudo mount -o bind "$aptcachedir" "$werdo" || zerr
;;
off)
act "umounting local apt cache"
sudo umount "$werdo" || zerr
;;
esac
}
fill_apt_cache() {
fn fill_apt_cache
req=(strapdir APT_CACHE aptcachedir)
ckreq || return 1
[[ $APT_CACHE = 1 ]] || return 0
notice "filling local apt cache"
cp -fv "$strapdir/var/cache/archives/*.deb" "$aptcachedir"
pushd "$aptcachedir"
dpkg-scanpackages . /dev/null > Packages
gzip -c Packages > Packages.gz
cat <<EOF > Release
Origin: ${os}
Suite: ${release}
Version: ${version}
Architectures: alpha amd64 arm64 armel armhf hppa i386 ia64 mips mipsel powerpc ppc64el s390x sparc
MD5sum:
$(md5sum Packages | cut -d' ' -f1) $(du -b Packages)
$(md5sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz)
SHA1:
$(sha1sum Packages | cut -d' ' -f1) $(du -b Packages)
$(sha1sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz)
SHA256:
$(sha256sum Packages | cut -d' ' -f1) $(du -b Packages)
$(sha256sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz)
EOF
rm -f Packages
## TODO: XXX: gpg sign Release
popd
sudo sed -i -e '@deb file:/mnt@d' "$strapdir/etc/apt/sources.list"
}