#!/bin/sh path=$(readlink -f $0) path=$(dirname $path) packages="$path/repository" repos="main testing" archs="x86 x86_64 armhf" db="$path/db/apkindex.db" csv="$path/csv/apkindex.csv" turbo_db="/var/www/aports-turbo/db/apkindex.db" read_line() { local type=${1%%:*} local var=${1#*:} case "$type" in P) name="\"$var\"" ;; V) version="\"$var\"" ;; T) desc="\"$var\"" ;; U) url="\"$var\"" ;; L) lic="\"$var\"" ;; A) parch="\"$var\"" ;; D) deps="\"$var\"" ;; C) csum="\"$var\"" ;; S) size="\"$var\"" ;; I) install_size="\"$var\"" ;; p) provides="\"$var\"" ;; i) install_if="\"$var\"" ;; o) origin="\"$var\"" ;; m) maintainer="\"$var\"" ;; t) build_time="\"$var\"" ;; c) commit="\"$var\"" ;; esac } reset_vars() { name= version= desc= url= lic= parch= deps= csum= size= install_size= provides= install_if= origin= maintainer= build_time= commit= } write_line() { echo "$name,$version,$desc,$url,$lic,$parch,$deps,$csum,$size,$install_size,$provides,$install_if,$origin,$maintainer,$build_time,$commit,$repo" } init_db() { rm -f $db printf "CREATE TABLE apkindex('name' text, 'version' text, 'desc' text, 'url' text, 'lic' text, 'arch' text, 'deps' text, 'csum' text, 'size' text, 'install_size' text, 'provides' text, 'install_if' text, 'origin' text, 'maintainer' text, 'build_time' integer, 'commit' text, 'repo' text);" | sqlite3 $db } write_db() { printf ".mode csv\n.import $csv apkindex" | sqlite3 $db printf "CREATE INDEX name on apkindex (name);" | sqlite3 $db printf "CREATE INDEX arch on apkindex (arch);" | sqlite3 $db printf "CREATE INDEX provides on apkindex (provides);" | sqlite3 $db printf "CREATE INDEX deps on apkindex (deps);" | sqlite3 $db } mv_db() { mv $db $turbo_db } rm -f $csv for repo in $repos; do for arch in $archs; do rm -f /tmp/APKINDEX tar -C /tmp -zxf $packages/$repo/$arch/APKINDEX.tar.gz APKINDEX IFS=$'\n' while read line; do if [ "$line" = "" ]; then write_line >> $csv reset_vars fi read_line "$line" done