summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlo Landmeter <clandmeter@gmail.com>2015-02-27 13:45:02 +0000
committerCarlo Landmeter <clandmeter@gmail.com>2015-02-27 13:45:02 +0000
commitcce2821573d3055a948237029844e6700614967c (patch)
tree5f9f9db8a11cb3d124eb4d8c460011d01830da8f
downloadrepo-scripts-cce2821573d3055a948237029844e6700614967c.tar.bz2
repo-scripts-cce2821573d3055a948237029844e6700614967c.tar.xz
add index2sqlite script
-rwxr-xr-xapkindex2sqlite.sh89
1 files changed, 89 insertions, 0 deletions
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