#!/bin/sh VER=v3.18 ARCH=x86_64 # ------------------------------------------------------------------- # main/community/testing # ------------------------------------------------------------------- set_apks_url() { local branch=$1 echo '>>> set branch: '$branch url=https://dl-cdn.alpinelinux.org/alpine/${VER}/${branch}/${ARCH} dest=/media/usb/apks2/alpine/${VER}/${branch}/${ARCH}/ } # ------------------------------------------------------------------- make_fetch_apks_list() { # altenative methods: # 1. apk add ffmpeg > a.lst 2>&1 # 2. 'apk add --simulate' and process the output # 3. 'apk fetch --recursive ', # useful if pkgs downloaded can be sorted local isUpgrade=$2 alist='a.lst' if [ x${isUpgrade} = 'xupgrade' ]; then echo ">>> Process UPGRADE" if [ ! -f "$alist" ]; then apk upgrade -a > a.lst 2>&1; fi grep '^(' a.lst | grep 'Upgrading' | awk -F' ' '{print $3 " " $6}' > b.lst else echo ">>> Process INSTALL" if [ ! -f "$alist" ]; then apk fix > a.lst 2>&1; fi grep '^(' a.lst | grep 'Installing' | awk -F' ' '{print $3 " " $4}' > b.lst fi local branch=$1; local F="${branch}.lst"; rm -f ${F} echo ">>> creating ${F}" local name file b cat 'b.lst' | while read f; do \ name=$(echo $f | awk '{print $1}') file=$(echo $f | sed 's/ /-/g' | sed 's/(//' | sed 's/)//') if [ ! -f "$alist" ]; then b=$(apk policy ${name} | grep -c ${branch}) else b=$(cat ${branch}/${ARCH}/APKINDEX.tar.gz \ | tar -O -zx APKINDEX | grep -c "^P:${name}$") # b=$(grep -c "^P:${name}$" 'APKINDEX') # alt method fi if [ $b -gt 0 ]; then echo "adding + $b $file"; echo ${file} >> ${F} fi done if [ -f $F ]; then _istxt=$(wc -l "$F" | grep -c '^') if [ $_istxt -gt 0 ]; then echo "... list created, run fetch cmd"; fi else echo " ... nothing to do" fi rm -f a.lst b.lst } fetch_apks() { local branch=$1 cat ${branch}.lst | while read f; do \ echo ">>> fetching: $url/$f.apk" wget -c --no-check-certificate $url/$f.apk done } fetch_index() { echo ">>> fetching: $url/APKINDEX.tar.gz" wget -c --no-check-certificate $url/APKINDEX.tar.gz } if [ x"$1" = 'xmain' -o x"$1" = 'xcommunity' -o x"$1" = 'xtesting' ]; then set_apks_url $1 # cd /tmp if [ 'xgetindex' = x"$2" ]; then fetch_index; fi # if [ 'xmklist' = x"$2" ]; then make_fetch_apks_list "$1"; fi if [ 'xmklist' = x"$2" ]; then make_fetch_apks_list "$1" "$3"; fi if [ 'xfetch' = x"$2" ]; then fetch_apks "$1"; fi fi # ------------------------------------------------------------------- # -------------------------------------------------------------------