cache (2551B)
1 #!/usr/bin/env zsh 2 # Copyright (c) 2017 Dyne.org Foundation 3 # libdevuansdk is maintained by Ivan J. <parazyd@dyne.org> 4 # 5 # This file is part of libdevuansdk 6 # 7 # This source code is free software: you can redistribute it and/or modify 8 # it under the terms of the GNU General Public License as published by 9 # the Free Software Foundation, either version 3 of the License, or 10 # (at your option) any later version. 11 # 12 # This software is distributed in the hope that it will be useful, 13 # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 # GNU General Public License for more details. 16 # 17 # You should have received a copy of the GNU General Public License 18 # along with this source code. If not, see <http://www.gnu.org/licenses/>. 19 20 aptcache() { 21 fn aptcache "$*" 22 req=(aptcachedir watdo werdo APT_CACHE) 23 local watdo="$1" 24 local werdo="$2" 25 ckreq || return 1 26 27 [[ $APT_CACHE = 1 ]] || return 0 28 29 case "$watdo" in 30 on) 31 act "mounting local apt cache" 32 sudo mount -o bind "$aptcachedir" "$werdo" || zerr 33 ;; 34 off) 35 act "umounting local apt cache" 36 sudo umount "$werdo" || zerr 37 ;; 38 esac 39 } 40 41 fill_apt_cache() { 42 fn fill_apt_cache 43 req=(strapdir APT_CACHE aptcachedir) 44 ckreq || return 1 45 46 [[ $APT_CACHE = 1 ]] || return 0 47 48 notice "filling local apt cache" 49 50 cp -fv $strapdir/var/cache/apt/archives/*.deb $aptcachedir 51 52 pushd "$aptcachedir" 53 dpkg-scanpackages . /dev/null > Packages 54 gzip -c Packages > Packages.gz 55 cat <<EOF > Release 56 Origin: ${os} 57 Suite: ${release} 58 Version: ${version} 59 Architectures: alpha amd64 arm64 armel armhf hppa i386 ia64 mips mipsel powerpc ppc64el s390x sparc 60 MD5sum: 61 $(md5sum Packages | cut -d' ' -f1) $(du -b Packages) 62 $(md5sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz) 63 SHA1: 64 $(sha1sum Packages | cut -d' ' -f1) $(du -b Packages) 65 $(sha1sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz) 66 SHA256: 67 $(sha256sum Packages | cut -d' ' -f1) $(du -b Packages) 68 $(sha256sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz) 69 EOF 70 rm -f Packages 71 gpg --sign --detach-sign -a --sign-with $aptcachegpg Release || zerr 72 mv Release.asc Release.gpg 73 popd 74 75 76 sudo sed -i '/deb file:\/mnt/d' "$strapdir/etc/apt/sources.list" 77 notice "removing apt cache gpg pubkey" 78 cat <<EOF | sudo tee ${strapdir}/delcachepubkey >/dev/null 79 #!/bin/sh 80 apt-key del ${aptcachegpg} 81 EOF 82 chroot-script delcachepubkey || zerr 83 }