From cce2821573d3055a948237029844e6700614967c Mon Sep 17 00:00:00 2001 From: Carlo Landmeter Date: Fri, 27 Feb 2015 13:45:02 +0000 Subject: add index2sqlite script --- apkindex2sqlite.sh | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100755 apkindex2sqlite.sh diff --git a/apkindex2sqlite.sh b/apkindex2sqlite.sh new file mode 100755 index 0000000..b012674 --- /dev/null +++ b/apkindex2sqlite.sh @@ -0,0 +1,89 @@ +#!/bin/sh + +apkindex="APKINDEX" +csvfile="output.csv" +database="apkindex.db" + +rm -f $csvfile $database + +read_line() { + local type=${1%%:*} + local var=${1#*:} + case "$type" in + P) #name + name="$var" + ;; + V) #version + version="$var" + ;; + T) #description + desc="\"$var\"" + ;; + U) #url + url="\"$var\"" + ;; + L) #license + lic="$var" + ;; + A) #arch + arch="$var" + ;; + D) #depends + deps="$var" + ;; + C) #csum + csum="$var" + ;; + S) #size + size="$var" + ;; + I) #installed_size + install_size="$var" + ;; + p) #provides + provides="$var" + ;; + i) #install_if + install_if="$var" + ;; + o) #origin + origin="$var" + ;; + m) #maintainer + maintainer="$var" + ;; + t) #build_time + build_time="$var" + ;; + c) #commit + commit="$var" + ;; + F|M|R|Z|r|q|a|s|f) #installed db entries + return 1 + ;; + esac +} + +reset_vars() { + name= version= desc= url= lic= arch= deps= csum= size= install_size= + provides= install_if= origin= maintainer= build_time= commit= +} + +write_line() { + echo "$name,$version,$desc,$url,$lic,$arch,$deps,$csum,$size,$install_size,$provides,$install_if,$origin,$maintainer,$build_time,$commit" >> \ + $csvfile +} + +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);" | sqlite3 $database + +IFS=$'\n' +while read line; do + [ "$line" = "" ] && write_line && reset_vars + read_line "$line" +done<$apkindex +unset $IFS + +printf ".mode csv\n.import $csvfile apkindex" | sqlite3 $database -- cgit v1.2.3