#!/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 LOADS # GRAPHICS FROM: # http://feed.forkable.eu/utils/list/svg/2008/micro.list # # LAYOUTED ACCORDING TO A GROWTH ALGORITHM # THE GENERATED GRAPHICS CAN BE FOUND AT: # http://www.forkable.eu/stock/2008/elytrigia # # PROCESSING SOURCE CAN BE FOUND AT: # http://www.forkable.eu/generators/elytrigia/src GRAPHICSET=elytrigia ERRORLOG=/raid/forkable/error.log RUNLOG=run-`date +%s`.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/elytrigia.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 LIBPDF=$APPDIR/i/lib/pdf.jar LIBITEXT=$APPDIR/i/lib/itext.jar LIBS=$LIBSKETCH:$LIBCORE:$LIBCANDY:$LIBPHYSICS:$LIBPDF:$LIBITEXT java -Djava.library.path="$APPDIR" \ -cp "$LIBS" \ elytrigia &> $RUNLOG & # AUTOMATICALLY EXIT PROGRAM AFTER X SECONDS # IF JAVA PROCESS IS STILL RUNNING JID=`echo $!` sleep 60; CATCHJID=`ps aux | grep $JID | sed -n '/grep/!p' | wc -l` #--------------------------------------------------------# CATCHERROR=`grep 'Stopped on' $RUNLOG | wc -l` if [ $CATCHERROR -ge 1 ] || [ $CATCHJID -ge 1 ]; then if [ $CATCHJID -ge 1 ]; then kill -9 $JID fi 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="Elytrigical Stock Plant Growth" INFO="\ \ generative, design, linux. \ Built with Processing. \ For more information visit http://www.lafkon.net/" ####################################################################### echo "InfoKey: Title" > metadata.txt echo "InfoValue: Elytrigia" >> 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 O8O930.pdf update_info metadata.txt \ output $FILE # GENERATE THUMBNAIL ################################################## convert -density 600 \ -resize 1600 \ -crop 150x150+750+700 \ $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 fi rm $FILENAME.tiff mv O8O930.pdf o/$FILENAME.pdf rm metadata.txt rm $RUNLOG rm ftp.input exit 0;