diff options
Diffstat (limited to 'generate_wordcloud.sh')
-rwxr-xr-x | generate_wordcloud.sh | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/generate_wordcloud.sh b/generate_wordcloud.sh new file mode 100755 index 0000000..22d4494 --- /dev/null +++ b/generate_wordcloud.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +## Declares +script_datestart=$(date +"%s") +MAXJOBS=16 + +OUT_DIR=out +OUT_CLOUD_ZIP=out/cloud.zip +mkdir -p $OUT_DIR + +if [ -z "$1" ]; then + ## Download new gerrit accounts + ACCOUNTS_DIR=db/accounts + ACCOUNTS_LAST=$ACCOUNTS_DIR/last.txt + mkdir -p $ACCOUNTS_DIR + FETCH_ACCOUNTS=false; + if [ ! -f $ACCOUNTS_LAST ]; then + FETCH_ACCOUNTS=true; + else + modsecs=$(date --utc --reference=$ACCOUNTS_LAST +%s) 2> /dev/null + nowsecs=$(date +%s) + delta=$(($nowsecs-$modsecs)) + if [ $delta -gt 86400 ]; then + FETCH_ACCOUNTS=true; + fi + fi + if [ "$FETCH_ACCOUNTS" = true ]; then + ACCOUNT=`cat $ACCOUNTS_LAST 2> /dev/null` + if [ $? -ne 0 ]; then + ACCOUNT=0 + fi + ERRORS=0 + echo "FETCHING NEW ACCOUNTS FROM $ACCOUNT ..."; + until [ $ERRORS -eq 10 ]; do + let ACCOUNT+=1 + wget -O $ACCOUNTS_DIR/$ACCOUNT https://review.lineageos.org/accounts/$ACCOUNT + if [ $? -ne 0 ]; then + let ERRORS+=1 + rm $ACCOUNTS_DIR/$ACCOUNT + continue; + fi + ERRORS=0 + echo $ACCOUNT > $ACCOUNTS_LAST + done + else + echo "DONT FETCH NEW ACCOUNTS..."; + fi + + + # Update repos + STATS_DIR=db/stats + PROJECTS_DIR=db/projects + PROJECTS_LIST=$PROJECTS_DIR/list.txt + PROJECTS_LIST_TMP=$PROJECTS_DIR/list.txt.tmp + mkdir -p $PROJECTS_DIR + rm -Rf $STATS_DIR + mkdir -p $STATS_DIR + wget -O $PROJECTS_LIST https://review.lineageos.org/projects/?p=LineageOS%2F \ + && perl -i -pe 's/%2F/\//g' $PROJECTS_LIST \ + && grep "\"id\":" $PROJECTS_LIST | awk -F"\"" '{print $4}' | grep -v "LineageOS\/\.\|LineageOS\/LineageOS" > $PROJECTS_LIST_TMP \ + && mv $PROJECTS_LIST_TMP $PROJECTS_LIST \ + && rm $PROJECTS_LIST.bak + cat $PROJECTS_LIST | xargs --max-procs=$MAXJOBS -I % ./repo_fetch.sh % +fi + +# Generate the cloud +java -Dfile.encoding=UTF-8 -classpath "./lib/*" CloudGenerator + +# Done +echo "" +echo "=====================================" +echo "Cloud generated: $OUT_CLOUD_ZIP" +script_dateend=$(date +"%s") +diff=$(($script_dateend-$script_datestart)) +echo "$(($diff / 60)) minutes and $(($diff % 60)) seconds elapsed."
\ No newline at end of file |