#!/bin/bash # # Copyright (c) 2009 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) TMP=i/tmp INPUTFOLDER=p OUTPUTFOLDER=o/free/en LOGODIR=i/free/logos NIRVANA=/dev/null OUTPUTGLOBAL=o/ ISRANDOM='GENERATES RANDOM OUTPUT' PDFMETA=$TMP/metadata.txt # CLEAR TEMP FOLDER rm $TMP/* ############################## # SELECT GRID # # AVAILABLE GRIDS:,9,81,729, # ############################## FORMAT=`echo FORMAT=$1` AVAILABLEGRIDS=`grep "AVAILABLE GRID" $0 | \ head -1 | \ cut -d "," -f 2,3,4` if [ $FORMAT = "FORMAT=panel" ]; then GRIDTYPE=`echo $AVAILABLEGRIDS | \ cut -d "," -f 1,2,3 | \ nawk 'gsub(",", "\n")' | \ sed '/^$/d' | \ rl --count=1` elif [ $FORMAT = "FORMAT=A1" ]; then GRIDTYPE=`echo $AVAILABLEGRIDS | \ cut -d "," -f 1,2,3 | \ nawk 'gsub(",", "\n")' | \ sed '/^$/d' | \ rl --count=1` elif [ $FORMAT = "FORMAT=A2" ]; then GRIDTYPE=`echo $AVAILABLEGRIDS | \ cut -d "," -f 1,2 | \ nawk 'gsub(",", "\n")' | \ sed '/^$/d' | \ rl --count=1` elif [ $FORMAT = "FORMAT=A3" ]; then GRIDTYPE=`echo $AVAILABLEGRIDS | \ cut -d "," -f 1,2 | \ nawk 'gsub(",", "\n")' | \ sed '/^$/d' | \ rl --count=1` else exit 1; fi FORMAT=$1 echo $GRIDTYPE > $TMP/gridsize.i ######################## # DECIDE CANVAS SCRIPT # ######################## CANVASSCRIPT=`grep -He .*SUITABLE.*,$GRIDTYPE i/*.sh | \ cut -d ":" -f 1 | \ rl --count=1 | \ cut -d "/" -f 2` ############################# # DECIDE LOGO AND INPUTFILE # ############################# WHITECHECK=`grep "WHITE LOGO" i/$CANVASSCRIPT | wc -l` BLACKCHECK=`grep "BLACK LOGO" i/$CANVASSCRIPT | wc -l` if [ $BLACKCHECK -ge 1 ]; then LOGO=$LOGODIR/makeartwtf_black.pdf elif [ $WHITECHECK -ge 1 ]; then LOGO=$LOGODIR/makeartwtf_white.pdf else LOGO=`ls $LOGODIR/makeartwtf_*.pdf | rl --count=1` fi LCOLOR=`echo ${LOGO##*makeartwtf_}` INPUTFILE=`cat $LOGODIR/${LCOLOR%.*}.list | \ rl --count=1` echo $INPUTFILE > $TMP/file.i ######################## # DECIDE LOGO POSITION # ######################## RNDA=`expr $RANDOM \* 23`; RNDB=`expr $RANDOM \* 42` PLACELOGO=`echo "5"$RNDA$RNDB | \ tr -d '0147' | \ rev | \ cut -c 1` # if [ $PLACELOGO -le 7 ]; then # # PLACEINFO=`expr $PLACELOGO + 3 - 9` # else # PLACEINFO=`expr $PLACELOGO + 3` # fi ### PLACEINFO=`expr $PLACELOGO - 1` PD=${CANVASSCRIPT%.*}_ FNA=`echo 00$GRIDTYPE| rev | cut -c 1-3 | rev`- ME=$PLACELOGO CHECKRANDOM=`grep "$ISRANDOM" i/$CANVASSCRIPT | wc -l` if [ $CHECKRANDOM -ge 1 ]; then CHECKEXIST=`find $OUTPUTFOLDER/$FORMAT -name "*$PD$FNA$ME*" | wc -l` else CHECKEXIST=`find $OUTPUTFOLDER/$FORMAT -name "*$PD$FNA*" | wc -l` fi if [ $CHECKEXIST -lt 1 ]; then PLACEINFO=0 PLACELOGO=0 ##################### # RUN CANVAS SCRIPT # ##################### cd i 1> $NIRVANA ./$CANVASSCRIPT $INPUTFILE $GRIDTYPE cd - 1> $NIRVANA TEXGENERATED=$TMP/canvas.tex COLCOUNT=3 ROWCOUNT=3 COLCOUNTTWO=3 ROWCOUNTTWO=3 MAXGRIDS=9 SECTOR=`grep SECTOR i/$CANVASSCRIPT | \ cut -d ":" -f 2 |\ rl --count=1` BORDER=`grep BORDER i/$CANVASSCRIPT | head -1 | cut -d ":" -f 2` BORDER=\{$BORDER\} ############################ # GRAFIK COMMAND FOR LATEX # ############################ createGRAFIK () { GRAFIKOPEN="\canvasgraphic{" GRAFIKCLOSE="}%" O=$GRAFIKOPEN; G=$GRAFIK C=$GRAFIKCLOSE ; S=$SECTOR; W=$WIDTH echo $O$G$C >> $TEXGENERATED echo $S$W >> $TEXGENERATED echo $BORDER >> $TEXGENERATED # echo $1 >> $TEXGENERATED # JUST DEBUGGING } #################################### ###################### # GENERATE INPUT TEX # ###################### if [ $GRIDTYPE -eq 9 ]; then GRIDCOUNT=1 GRAFIKCOUNT=1 echo "\setlength{\unitlength}%" > $TEXGENERATED echo "{\universalgrid}%" >> $TEXGENERATED echo "\grid%" >> $TEXGENERATED while [ $GRIDCOUNT -le $MAXGRIDS ] do if [ $GRIDCOUNT -eq $PLACELOGO ]; then echo "{%" >> $TEXGENERATED echo "\logoblock" >> $TEXGENERATED echo "}%" >> $TEXGENERATED GRIDCOUNT=`expr $GRIDCOUNT + 1` GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1` elif [ $GRIDCOUNT -eq $PLACEINFO ]; then echo "{%" >> $TEXGENERATED echo "\infoblock" >> $TEXGENERATED echo "}%" >> $TEXGENERATED GRIDCOUNT=`expr $GRIDCOUNT + 1` GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1` else echo "{%" >> $TEXGENERATED GRAFIK=`ls $TMP/*.pdf | \ head -n $GRIDTYPE | \ head -n $GRAFIKCOUNT | \ tail -1` WIDTH="{width=.97\universalgrid}" createGRAFIK echo "}%" >> $TEXGENERATED GRIDCOUNT=`expr $GRIDCOUNT + 1` GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1` fi done elif [ $GRIDTYPE -eq 81 ]; then ###################### # GENERATE INPUT TEX # ###################### GRIDCOUNT=1 GRAFIKCOUNT=1 echo "\setlength{\unitlength}%" > $TEXGENERATED echo "{\universalgrid}%" >> $TEXGENERATED echo "\grid%" >> $TEXGENERATED while [ $GRIDCOUNT -le $MAXGRIDS ] do ################################## TEXGENERATED=$TMP/canvas.tex if [ $GRIDCOUNT -eq $PLACELOGO ]; then echo "{%" >> $TEXGENERATED echo "\logoblock" >> $TEXGENERATED echo "}%" >> $TEXGENERATED TEXGENERATED=$NIRVANA elif [ $GRIDCOUNT -eq $PLACEINFO ]; then echo "{%" >> $TEXGENERATED echo "\infoblock" >> $TEXGENERATED echo "}%" >> $TEXGENERATED TEXGENERATED=$NIRVANA fi ################################## GRIDCOUNTTWO=1 echo "{%" >> $TEXGENERATED echo "\setlength{\unitlength}%" >> $TEXGENERATED echo "{.33\universalgrid}%" >> $TEXGENERATED echo "\grid%" >> $TEXGENERATED while [ $GRIDCOUNTTWO -le $MAXGRIDS ] do if [ $COLCOUNT -le 0 ]; then COLCOUNT=3 GRAFIKCOUNT=`expr $GRAFIKCOUNT + 6` fi echo "{%" >> $TEXGENERATED GRAFIK=`ls $TMP/*.pdf | head -n $GRIDTYPE | \ head -n $GRAFIKCOUNT | \ tail -1` WIDTH="{width=.3\universalgrid}" createGRAFIK $GRAFIKCOUNT # JUST DEBUGGING echo "}%" >> $TEXGENERATED GRIDCOUNTTWO=`expr $GRIDCOUNTTWO + 1` GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1` COLCOUNT=`expr $COLCOUNT - 1` done echo "}%" >> $TEXGENERATED GRIDCOUNT=`expr $GRIDCOUNT + 1` COLCOUNT=3 ROWCOUNT=`expr $ROWCOUNT - 1` if [ $ROWCOUNT -gt 0 ]; then GRAFIKCOUNT=`expr $GRAFIKCOUNT - 18` else ROWCOUNT=3 fi done elif [ $GRIDTYPE -eq 729 ]; then ###################### # GENERATE INPUT TEX # ###################### GRIDCOUNT=1 GRAFIKCOUNT=1 COLCOUNT=3 ROWCOUNT=3 echo "\setlength{\unitlength}%" > $TEXGENERATED echo "{\universalgrid}%" >> $TEXGENERATED echo "\grid%" >> $TEXGENERATED while [ $GRIDCOUNT -le $MAXGRIDS ] do ################################## TEXGENERATED=$TMP/canvas.tex if [ $GRIDCOUNT -eq $PLACELOGO ]; then echo "{%" >> $TEXGENERATED echo "\logoblock" >> $TEXGENERATED echo "}%" >> $TEXGENERATED TEXGENERATED=$NIRVANA elif [ $GRIDCOUNT -eq $PLACEINFO ]; then echo "{%" >> $TEXGENERATED echo "\infoblock" >> $TEXGENERATED echo "}%" >> $TEXGENERATED TEXGENERATED=$NIRVANA fi ################################## echo "{%" >> $TEXGENERATED GRIDCOUNTTWO=1 MAXGRIDS=9 echo "\setlength{\unitlength}%" >> $TEXGENERATED echo "{.33\universalgrid}%" >> $TEXGENERATED echo "\grid%" >> $TEXGENERATED while [ $GRIDCOUNTTWO -le $MAXGRIDS ] do if [ $COLCOUNT -le 0 ]; then COLCOUNT=3 GRAFIKCOUNT=`expr $GRAFIKCOUNT + 18` fi echo "{%" >> $TEXGENERATED GRIDCOUNTTHREE=1 ############################################### echo "\setlength{\unitlength}%" >> $TEXGENERATED echo "{.11\universalgrid}%" >> $TEXGENERATED echo "\grid%" >> $TEXGENERATED ############################################### while [ $GRIDCOUNTTHREE -le $MAXGRIDS ] do if [ $COLCOUNTTWO -le 0 ]; then COLCOUNTTWO=3 GRAFIKCOUNT=`expr $GRAFIKCOUNT + 24` fi echo "{%" >> $TEXGENERATED GRAFIK=`ls $TMP/*.pdf | head -n $GRIDTYPE | \ head -n $GRAFIKCOUNT | \ tail -1` WIDTH="{width=.075\universalgrid}%" createGRAFIK # $GRAFIKCOUNT # JUST DEBUGGING echo "}%" >> $TEXGENERATED GRIDCOUNTTHREE=`expr $GRIDCOUNTTHREE + 1` GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1` COLCOUNTTWO=`expr $COLCOUNTTWO - 1` done ################################################ echo "}%" >> $TEXGENERATED COLCOUNTTWO=3 ROWCOUNTTWO=`expr $ROWCOUNTTWO - 1` if [ $ROWCOUNTTWO -gt 0 ]; then GRAFIKCOUNT=`expr $GRAFIKCOUNT - 54` else ROWCOUNTTWO=3 fi GRIDCOUNTTWO=`expr $GRIDCOUNTTWO + 1` #GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1` COLCOUNT=`expr $COLCOUNT - 1` done echo "}%" >> $TEXGENERATED GRIDCOUNT=`expr $GRIDCOUNT + 1` COLCOUNT=3 ROWCOUNT=`expr $ROWCOUNT - 1` if [ $ROWCOUNT -gt 0 ]; then GRAFIKCOUNT=`expr $GRAFIKCOUNT - 216` else ROWCOUNT=3 fi done fi # LOGO=$LOGODIR/makeart4sizedoesmatter.pdf cp $LOGO $TMP/logo.pdf ###################### # POSTER INFORMATION # ###################### cat i/$CANVASSCRIPT | \ sed 's/\#/ /g' |\ sed 's/based on/poster graphics based on/g' > $TMP/script.sh ######################### # DECIDE AND PLACE LOGO # ######################### ISPROCESSING=`grep java i/$CANVASSCRIPT | wc -l` ISSHOEBOT=`grep SHOEBOT i/$CANVASSCRIPT | wc -l` if [ $ISPROCESSING -gt 0 ]; then cp $LOGODIR/processing.pdf $TMP/scriptlogo.pdf elif [ $ISSHOEBOT -gt 0 ]; then echo TEST else cp $LOGODIR/bash.pdf $TMP/scriptlogo.pdf fi pdflatex $FORMAT.tex &> $NIRVANA ########################################################### SUBJECT="This is a poster created for make art 2009." INFO=\ "Built with LaTeX,Processing and BASH, \ for more information visit http://www.forkable.eu . \ Possible Keywords: \ generative, design, linux, make art" ########################################################### echo "InfoKey: Title" > $PDFMETA echo "InfoValue: $PD$FNA$ME (What the Fork?!)" >> $PDFMETA echo "InfoKey: Subject" >> $PDFMETA echo "InfoValue: $SUBJECT" >> $PDFMETA echo "InfoKey: Keywords" >> $PDFMETA echo "InfoValue: $INFO" >> $PDFMETA echo "InfoKey: Author" >> $PDFMETA echo "InfoValue: LAFKON Publishing" >> $PDFMETA ########################################################### pdftk $FORMAT.pdf update_info $PDFMETA \ output $OUTPUTFOLDER/$FORMAT/wtf_$PD$FNA$ME.pdf rm $FORMAT.pdf ########################################################### ##### FLYER ############################################### ########################################################### ############################################################## # SUBJECT="This is a flyer created for make art 2009." # INFO=\ # "Built with LaTeX,Processing and BASH, \ # for more information visit http://www.forkable.eu . \ # Possible Keywords: \ # generative, design, linux, make art" ############################################################## # echo "InfoKey: Title" > $PDFMETA # # echo "InfoValue: $PD$FNA$ME (What the Fork?!)" >> $PDFMETA # # echo "InfoKey: Subject" >> $PDFMETA # # echo "InfoValue: $SUBJECT" >> $PDFMETA # # echo "InfoKey: Keywords" >> $PDFMETA # # echo "InfoValue: $INFO" >> $PDFMETA # # echo "InfoKey: Author" >> $PDFMETA # # echo "InfoValue: LAFKON Publishing" >> $PDFMETA # ############################################################## cat i/$CANVASSCRIPT | \ sed 's/\#/ /g' |\ sed 's/based on/flyer graphics based on/g' > $TMP/script.sh TEXGENERATED=$TMP/recto.tex GRIDCOUNT=1 GRAFIKCOUNT=1 MAXGRIDS=9 # SECTOR={0}{0}{400}{400} COUNT=0 ############################# while [ $COUNT -lt 0 ] do UNIQUE=`date +%s` GRIDCOUNT=1 GRAFIKCOUNT=1 echo "\grid%" > $TEXGENERATED while [ $GRIDCOUNT -le $MAXGRIDS ] do echo "{%" >> $TEXGENERATED GRAFIK=`ls $TMP/*.pdf | \ grep -v logo | \ rl --count=9 | \ head -n $MAXGRIDS | tac | \ head -n $GRAFIKCOUNT | \ tail -1` if [ $GRIDCOUNT -eq 6 ] || [ $GRIDCOUNT -eq 3 ] || [ $GRIDCOUNT -eq 9 ]; then RB=0 # ROTATEBOX RI=0 # ROTATEINSIDE else RB=`echo $RANDOM | cut -c 1-2` # ROTATEBOX RI=`echo $RANDOM | cut -c 2-3` # ROTATEINSIDE fi WIDTH=\{angle=$RI,width=.97\\universalgrid\} # BORDER={1pt} # echo \\rotatebox\{$RB\}\{ >> $TEXGENERATED createGRAFIK echo "}%" >> $TEXGENERATED echo "}%" >> $TEXGENERATED GRIDCOUNT=`expr $GRIDCOUNT + 1` GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1` done COUNT=`expr $COUNT + 1` pdflatex A5.tex &> $NIRVANA pdftk A5.pdf update_info $PDFMETA \ output $OUTPUTFOLDER/flyer/recto/wtf_$UNIQUE.pdf rm A5.pdf done ############################# else echo The File wtf_$PD$FNA$ME already exists fi exit 0;