#!/bin/bash # Copyright (C) 2008 LAFKON/Christoph Haag. # # This is free software, and you may redistribute it under the GPL. # This Software comes with absolutely no warranty. # For details see the license (http://www.lafkon.net/gpl.txt) # THIS SCRIPT CALLS A PROCESSING SKETCH THAT PRODUCES # GRAPHICS THROUGH A FEEDBACK-FED PARTICLE SYSTEM # # GRAPHICS CAN BE FOUND AT: # http://www.forkable.eu/stock/2007/minimartcls # # PROCESSING SOURCE CAN BE FOUND AT: # http://www.forkable.eu/generators/minimarticls/src GRAPHICSET=minimartcls ERRORLOG=/raid/forkable/error.log RUNLOG=run-`date +%s`.log #RUNLOG=run.log # CAUSE SCRIPT TO STOP ON ERROR set -e # START VIRTUAL XSERVER FOR PROCESSING HEADLESS ###################### # Xvfb :1 -screen 0 1152x900x8 -fbdir /tmp & # EXPORT DISPLAY FOR PROCESSING HEADLESS ############################# export DISPLAY=localhost:1.0 # RUN PROCESSING SKETCH ############################################## APPDIR=$(dirname "$0") LIBSKETCH=$APPDIR/i/lib/minimarticls.jar LIBCORE=$APPDIR/i/lib/core.jar LIBXML=$APPDIR/i/lib/xml.jar LIBCANDY=$APPDIR/i/lib/candy.jar:$LIBXML LIBPHYSICS=$APPDIR/i/lib/physics.jar LIBITEXT=$APPDIR/i/lib/itext.jar LIBPDF=$APPDIR/i/lib/pdf.jar:$LIBITEXT # MINIM # JL=$APPDIR/i/lib/jl1.0.jar MINIM=$APPDIR/i/lib/minim.jar MP3=$APPDIR/i/lib/mp3spi1.9.4.jar TRIAOS=$APPDIR/i/lib/tritonus_aos.jar TRISHA=$APPDIR/i/lib/tritonus_share.jar LIBMINIM=$JL:$MINIM:$MP3:$TRIAOS:$TRISHA LIBS=$LIBSKETCH:$LIBCORE:$LIBPHYSICS:$LIBPDF:$LIBMINIM:$LIBCANDY java -Djava.library.path="$APPDIR" \ -cp "$LIBS" \ minimarticls &> $RUNLOG & # AUTOMATICALLY EXIT PROGRAM AFTER X SECONDS # IF JAVA PROCESS IS STILL RUNNING JID=`echo $!` sleep 180; CATCHJID=`ps aux | grep $JID | sed -n '/grep/!p' | wc -l` #--------------------------------------------------------# CATCHERROR=`grep 'Stopped on' $RUNLOG | wc -l` if [ $CATCHJID -ge 1 ]; then kill -9 $JID echo "--------------------------" >> $ERRORLOG echo "" >> $ERRORLOG echo "$0 aborted on "`date` >> $ERRORLOG echo "" >> $ERRORLOG cat $RUNLOG >> $ERRORLOG echo "" >> $ERRORLOG echo "--------------------------" >> $ERRORLOG rm $RUNLOG exit 1; else #--------------------------------------------------------# ####################################################################### SUBJECT="Minim powered minimal Particles" INFO="" ####################################################################### echo "InfoKey: Title" > metadata.txt echo "InfoValue: Minimarticls" >> metadata.txt echo "InfoKey: Subject" >> metadata.txt echo "InfoValue: $SUBJECT" >> metadata.txt echo "InfoKey: Keywords" >> metadata.txt echo "InfoValue: $INFO" >> metadata.txt echo "InfoKey: Author" >> metadata.txt echo "InfoValue: Christoph Haag / LAFKON" >> metadata.txt ####################################################################### # SELECT OLDEST FILE ################################################## FILE=`ls o/*.pdf --sort=time | tail -1` FILENAME=`echo ${FILE##*/} | cut -d "." -f 1` # RENAME AND MOVE TO OUTPUT FOLDER #################################### pdftk mnmrtcls.pdf update_info metadata.txt \ output $FILE # GENERATE THUMBNAIL ################################################## convert -resize 200 \ -crop 150x150+20+20 \ $FILE \ $FILENAME.tiff # WRITE DATE ON THUMBNAIL ############################################# MARK=`date "+%d.%B %Y %T"` convert -fill white -draw "rectangle 1,130,149,145" \ -font helvetica -pointsize 10 \ -fill black +antialias \ -draw "text 3,141 '$MARK'" \ $FILENAME.tiff \ o/$FILENAME.gif # GENERATE FTP COMMANDS ############################################### ACCESS=`cat ~/.forkable/ftp.input` echo $ACCESS > ftp.tmp echo "put $FILE www/$GRAPHICSET/${FILE##*/}" >> ftp.tmp echo "put o/$FILENAME.gif www/$GRAPHICSET/$FILENAME.gif" >> ftp.tmp echo "bye" >> ftp.tmp mv ftp.tmp ftp.input # UPLOAD VIA FTP ###################################################### ftp -n vektordb.kilu.de < ftp.input rm $FILENAME.tiff rm mnmrtcls.pdf rm metadata.txt rm $RUNLOG rm ftp.input fi exit 0;