wrapper for gatling
[bookman] / import.sh
1 #!/bin/sh
2
3 HTTP_COOKIE='id=____________'
4 mkdir -p 'users/____________'
5 . ./index.cgi >&-
6
7 seq=$(date +%s)
8 seqid(){
9   { printf "$(
10       while [ -n "$seq" -a "${seq}" -gt 0 ]; do
11         # ^^ double condition seems necessary in dash
12         # (possibly due to faulty result caching?)
13         printf \\%o $((seq % 256))
14         seq=$((seq / 256))
15       done
16     )" | tac
17     head -c5 /dev/urandom
18   } \
19   | uuencode -m - \
20   | sed -n '2{y;+/;:_;;p}'
21 }
22
23
24 import="$1"
25 order=1000
26 BDB="users/$(genid)"
27
28 mkdir users/
29 git init "${BDB}" || mkdir "${BDB}"
30 mkdir "${BDB}/favicons"
31
32 while read l; do
33   case "$l" in
34     folder=*)
35       fid="$(seqid)"
36       name="$(QUERY_STRING="$l" GET folder)"
37       file="${BDB}/${fid}.bm"
38       printf '%s\t%s\t%s\n' "$fid" "$(HTML "$name")" "$order" >"$file"
39       order="$(($order + 1000))"
40       seq=$(($seq + 1))
41       printf 'Setting up Folder: %s\n' "$name"
42       ;;
43     title=*)
44       title="$(QUERY_STRING="$l" GET title)"
45       ;;
46     content=*)
47       uri="$(QUERY_STRING="$l" GET content |head -n1)"
48       if [ -f "$file" -a -n "$title" ]; then
49         bid=$(seqid)
50         printf '%s\t%s\t%s\n' "$bid" "$(HTML "$title")" "$uri" >>"$file"
51         getFavicon "$uri" "$bid" &
52         seq=$(($seq + 1))
53         printf 'Added record "%s" to %s\n' "$title" "$file"
54       fi
55       ;;
56   esac
57 done <"$import"
58
59 printf 'Finished import to collection: %s\n' "${BDB##*/}"