diff options
Diffstat (limited to 'misc/convert-pre')
-rwxr-xr-x | misc/convert-pre | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/misc/convert-pre b/misc/convert-pre new file mode 100755 index 0000000..55f2222 --- /dev/null +++ b/misc/convert-pre @@ -0,0 +1,118 @@ +#!/bin/bash + +rm -f pilot.list +for i in `grep pilot --include=layer db/context/ -Rl`; do echo $(basename `dirname $i`) >> pilot.list; done +echo "{" > var/pilot-releases +for i in `grep pilot --include=layer db/implementation/ -Rl`; do + d=`dirname $i` + c=`cat $d/context | awk -F\" '{print $6}'` + v=`cat $d/version | awk -F\" '{print $6}'` + echo "\"$c\": \"$v\"," >> var/pilot-releases +done +echo '"": null}' >> var/pilot-releases + +rm -rf db/idea db/implementation db/notification db/problem db/question db/sync db/user db/files.index db/guid db/master db/authorization.conf db/report db/user +find db -name index -exec rm -rf {} \; +mkdir -p var +mv db/seqno var/ + +for i in `grep d26cef70447160f31a7497cc0320f23a4e383cc3 --include author -R db | awk -F: '{print $1}'`; do i=`dirname $i`; rm -rf $i; done +for i in `grep package --include type -R db/context | awk -F: '{print $1}'`; do i=`dirname $i`; rm -rf $i; done +find db/context \( -name ef5f33b2378c11e295d00016360ee2af -o -name org.sugarlabs.ContributorHub -o -name edu.mit.media.ScratchActivity -o -name c031aafc143c11e299ed0016360ee2af \) -exec rm -rf {} \; +find db/context \( -name clone -o -name layer -o -name dependencies -o -name downloads -o -name favorite -o -name implement -o -name packages -o -name position -o -name rating -o -name reviews -o -name versions \) -exec rm {} \; +for i in `find db/context -name type`; do sed -i s/project/group/ $i; done +for i in `find db/context -name title`; do p=`dirname $i`; [ -e $p/guid ] || rm -rf $p; done +for i in `find db/artifact -name preview`; do rm -rf `dirname $i`; done +rm -f db/context/7e/7e2c350ac65811e1a30a0016360ee2af/icon* +rm db/context/{layout,seqno} + +for i in `find db/review/ -name guid`; do + src=`dirname $i` + guid=`basename $src` + dst="db/post/${guid:0:2}/$guid" + mkdir -p $dst + mv $src/{author,context,ctime,guid,mtime,seqno,tags,title} $dst/ + mv $src/content $dst/message + echo -n '{"seqno": 1, "value": "review"}' > $dst/type +done +rm -rf db/review + +for i in `find db/artifact/ -name data`; do + src=`dirname $i` + guid=`basename $src` + dst="db/post/${guid:0:2}/$guid" + mkdir -p $dst + mv $src/{author,context,ctime,guid,mtime,seqno,tags,title} $dst/ + mv $src/description $dst/message + echo -n '{"seqno": 1, "value": "file"}' > $dst/type + digest=`grep -o 'digest[^,}]*' $src/data | awk -F\" '{print $3}'` + mime_type=`grep -o 'mime_type[^,}]*' $src/data | awk -F\" '{print $3}'` + blob_size=`ls -l $src/data.blob | awk '{print $5}'` + echo -n "{\"seqno\": 1, \"value\": {\"$digest\": {\"seqno\": 1, \"value\": \"$digest\"}}}" > $dst/attachments + blob_dst=blobs/${digest:0:3}/$digest + mkdir -p `dirname $blob_dst` + mv $src/data.blob $blob_dst + cat >>$blob_dst.meta <<EOF +content-type: $mime_type +content-length: $blob_size +x-seqno: 1 +EOF +done +rm -rf db/artifact + +for i in `find db/feedback/ -name guid`; do + src=`dirname $i` + guid=`basename $src` + dst="db/post/${guid:0:2}/$guid" + type=`cat $src/type | awk -F\" '{print $6}'` + mkdir -p $dst + mv $src/{author,context,ctime,guid,mtime,seqno,tags,title} $dst/ + mv $src/content $dst/message + echo -n "{\"seqno\": 1, \"value\": \"$type\"}" > $dst/type +done +rm -rf db/feedback + +for i in `find db/solution/ -name guid`; do + src=`dirname $i` + guid=`basename $src` + dst="db/post/${guid:0:2}/$guid" + topic=`grep -o 'value[^,}]*' $src/feedback | awk -F\" '{print $3}'` + mkdir -p $dst + mv $src/{author,context,ctime,guid,mtime,seqno,tags} $dst/ + mv $src/content $dst/message + echo -n "{\"seqno\": 1, \"value\": {}}" > $dst/title + echo -n "{\"seqno\": 1, \"value\": \"solution\"}" > $dst/type + echo -n "{\"seqno\": 1, \"value\": \"$topic\"}" > $dst/topic +done +rm -rf db/solution + +rm -rf comment.list +for i in `find db/comment/ -name guid`; do + src=`dirname $i` + guid=`basename $src` + post=`grep -o 'value[^,}]*' $src/review | awk -F\" '{print $3}'` + if [ -z "$post" -o ! -e db/post/${post:0:2}/$post ]; then + post=`grep -o 'value[^,}]*' $src/solution | awk -F\" '{print $3}'` + if [ -z "$post" -o ! -e db/post/${post:0:2}/$post ]; then + post=`grep -o 'value[^,}]*' $src/feedback | awk -F\" '{print $3}'` + if [ -z "$post" -o ! -e db/post/${post:0:2}/$post ]; then + continue + fi + fi + fi + author=`sed 's/.*value.. //; s/}$//' $src/author` + message=`sed 's/.*value.. //; s/}$//' $src/message` + mtime=`grep -o 'value[^,}]*' $src/mtime | awk '{print $2}'` + mkdir -p comment.list/$post + echo "\"$guid\": {\"author\": $author, \"value\": $message}" > comment.list/$post/$mtime +done +for post in `ls comment.list`; do + value= + for mtime in `ls comment.list/$post`; do + [ "$value" ] && value="$value, " + value="${value}`cat comment.list/$post/$mtime`" + done + echo -n "{\"seqno\": 1, \"value\": {$value}}" > db/post/${post:0:2}/$post/comments +done +rm -rf comment.list +rm -rf db/comment |