summaryrefslogtreecommitdiffstats
path: root/apkindex2sqlite.sh
diff options
context:
space:
mode:
Diffstat (limited to 'apkindex2sqlite.sh')
-rwxr-xr-xapkindex2sqlite.sh136
1 files changed, 65 insertions, 71 deletions
diff --git a/apkindex2sqlite.sh b/apkindex2sqlite.sh
index d2c96f4..64e3919 100755
--- a/apkindex2sqlite.sh
+++ b/apkindex2sqlite.sh
@@ -1,89 +1,83 @@
#!/bin/sh
-apkindex="APKINDEX"
-csvfile="output.csv"
-database="apkindex.db"
-
-rm -f $csvfile $database
+packages="repository"
+repos="main testing"
+archs="x86 x86_64 armhf"
+db="db/apkindex.db"
+csv="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
- 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
+ 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= arch= deps= csum= size= install_size=
+ 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,$arch,$deps,$csum,$size,$install_size,$provides,$install_if,$origin,$maintainer,$build_time,$commit" >> \
- $csvfile
+ 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
+}
+
+prepare() {
+ rm -f $db $csv
+ mkdir -p ${csv%/*} ${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);" | sqlite3 $database
+rm -f $csv
-IFS=$'\n'
-while read line; do
- [ "$line" = "" ] && write_line && reset_vars
- read_line "$line"
-done<$apkindex
-unset IFS
+for repo in $repos; do
+ for arch in $archs; do
+ rm -f /tmp/APKINDEX
+ #curl -s "$aports/$repo/$arch/APKINDEX.tar.gz" | tar -zx -C /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</tmp/APKINDEX
+ unset IFS
+ done
+done
-printf ".mode csv\n.import $csvfile apkindex" | sqlite3 $database
+prepare && init_db && write_db