#!/bin/sh base="/var/www/localhost/htdocs/alpine" #release=$(readlink $base/latest-stable) release="edge" repos="main testing" archs="x86 x86_64 armhf" output="output.csv" database="filelist.db" create_filelist() { local apk="$1" repo="$2" arch="$3" local filelist=$(tar --exclude ".*" -ztf "$apk") local filename="${apk##*/}" local pkgname="${filename%-*-*}" IFS=$'\n' for item in $filelist; do file="${item##*/}" path="${item%/*}" case "$file" in *,*) file="\"$file\"" ;; esac case "$path" in *,*) path="\"$path\"" ;; esac [ ! -z "$file" ] && \ echo "$file,$path,$pkgname,$repo,$arch" >> $output done unset IFS } rm -f $output $database printf "CREATE TABLE filelist(file varchar(255), path text, pkgname varchar(255), repo varchar(8), arch varchar(8));" | sqlite3 $database for repo in $repos; do for arch in $archs; do printf "Starting: $repo/$arch" for apk in $base/$release/$repo/$arch/*.apk; do printf . create_filelist "$apk" "$repo" "$arch" done printf "\n" done done printf ".mode csv\n.import $output filelist" | sqlite3 $database