#!/bin/bash REFERENZ=i/free/svg/Template_XX_referenz.svg TMPDIR=tmp; rm $TMPDIR/* OUTPUTDIR=o/free/svg/iotomated TMPTEX=`date +%s`.tex LAYERID=layerid SVGDIR=i/free/svg/construct COMBIDIR=$TMPDIR/combinations ; rm $COMBIDIR/*.list CONNECTORID=connector #for SVGDIR in $SVGDIR # do for SVGDIR in `find $SVGDIR -mindepth 1 -type d` do #SVGDIR=$FOLDER echo $SVGDIR # --------------------------------------------------------------------- # source i/free/bash/separateLayers.function # ----------------------------------------------------------------- # SVGLIST=$TMPDIR/`date +%s`.list ls $SVGDIR | grep svg > $SVGLIST separateLayers # ================================================================= # IDCNT=0 for IDENTIFIER in `ls ${SVGDIR}/ | \ grep svg | cut -d "_" -f 1` do echo $IDENTIFIER SOURCELIST=$TMPDIR/source.list; rm $SOURCELIST ####################################### # WRITE LIST WITH POSSIBLE SOURCES # ####################################### ls $TMPDIR/*.layer | \ grep ${IDENTIFIER}_ > $SOURCELIST ####################################### if [ `cat $SOURCELIST | wc -l` -le 0 ];then exit 0; fi TICK=0 rm $COMBIDIR/*.list K=1 while [ $K -le 1000 ]; do LAYERLIST=$COMBIDIR/`date +%s%N`${TICK}${K}.list; ##################################################################### # WRITE LIST WITH LAYERS,SORT,UNIQ (LAYERID) # ##################################################################### for LAYER in `grep -h $LAYERID \`cat $SOURCELIST\` | \ grep -v XX | sed 's/>//g' | cut -d "\"" -f 1-2 | \ sort | uniq` do SELECTLAYERFILE=`grep -H $LAYER \`cat $SOURCELIST \` | \ cut -d : -f 1 | shuf -n 1` echo $SELECTLAYERFILE >> $LAYERLIST done SVG=`ls $SVGDIR | grep $IDENTIFIER | head -1` # HEADENDLINENUMBER=`cat -n $SVGDIR/$SVG | \ # grep $HEADEND | \ # cut -f 1 | \ # head -1` if [ `fdupes $COMBIDIR | wc -l` -lt 1 ]; then ##################################################################### # WRITE ALL LAYERS TO A NEW SVG FILE # ##################################################################### if [ `echo $SVG | grep 'R+' | wc -l` -gt 0 ]; then ROTATOR='-R+' else ROTATOR= fi BASENAME=`echo \`basename $SVG \` | cut -d "_" -f 1 | sed 's/-R+//g'` CONNECTS=`echo \`basename $SVG \` | cut -d "_" -f 2-10` MDNAME=`echo \`basename $SVG \` | \ md5sum | cut -c 1-15` #NEWNAME=`echo $BASENAME | cut -c 1-4``echo $RANDOM` #SRCID=`echo $BASENAME | cut -c 1-4 | tr '[a-z]' '[A-Z]'` #NEWNAME=`date +%s%N | cut -c 1-14`$SRCID NEWNAME=`date +%s%N | cut -c 1-13`$IDCNT NEWSVG=$TMPDIR/${NEWNAME}${ROTATOR}_${CONNECTS} # head -n $HEADENDLINENUMBER $SVGDIR/$SVG > $NEWSVG FILECONNECTIONS=_X_X_X_X_ cat $REFERENZ | grep -v "" > $NEWSVG # rm $TMPDIR/test.list # for LAYERFILE in `cat $LAYERLIST | sort` # do # LAYERCONNECTION=`grep $CONNECTORID $LAYERFILE | \ # cut -d "=" -f 1,2 | \ # cut -d "\"" -f 2` # # echo $LAYERFILE" EXISTING CONNECTIONS: "$LAYERCONNECTION # echo ${LAYERFILE}:${LAYERCONNECTION} >> $TMPDIR/test.list # # OBEN=`echo $LAYERCONNECTION | cut -d "_" -f 2` # RECHTS=`echo $LAYERCONNECTION | cut -d "_" -f 3` # UNTEN=`echo $LAYERCONNECTION | cut -d "_" -f 4` # LINKS=`echo $LAYERCONNECTION | cut -d "_" -f 5` # # done # http://stackoverflow.com/questions/6302006/how-to-sort-based-on-a-column-but-uniq-based-on-another-column # sort -u -t_ -k 5,5 # FOR EVERY UNIQUE LAYER ID GREP # if for LAYERFILE in `cat $LAYERLIST | sort` do # # ----------------------------------------------------------- # # # SKIP (ABUSE WRITTEN) # WILDCARDCONNECTION=`echo $LAYERCONNECTION | sed 's/X/.*/g'` # MATCH=`grep $WILDCARDCONNECTION \`cat $LAYERLIST\` | wc -l` # if [ $MATCH -gt 1 ]; then # WRITTEN="true" # echo $LAYERCONNECTION # REPLACE=`grep $WILDCARDCONNECTION \`cat $LAYERLIST\` | grep $LAYERFILE | cut -d ":" -f 1` # echo $REPLACE # echo # LAYERFILE=$REPLACE # fi # # ----------------------------------------------------------- # LAYERCONNECTION=`grep $CONNECTORID $LAYERFILE | \ cut -d "=" -f 1,2 | \ cut -d "\"" -f 2` if [ `grep $CONNECTORID $LAYERFILE | wc -l` -lt 1 ]; then cat $LAYERFILE >> $NEWSVG else OBEN=`echo $LAYERCONNECTION | cut -d "_" -f 2` RECHTS=`echo $LAYERCONNECTION | cut -d "_" -f 3` UNTEN=`echo $LAYERCONNECTION | cut -d "_" -f 4` LINKS=`echo $LAYERCONNECTION | cut -d "_" -f 5` CNT=2 ; for CONNECTION in $OBEN $RECHTS $UNTEN $LINKS do FCONNECTION=`echo $FILECONNECTIONS | \ cut -d "_" -f $CNT` # ============================================================ # if [ $FCONNECTION = "X" ] then NEWCONNECTION=$CONNECTION if [ $CONNECTION != "X" ] then #----------------------------------------------------------# FILE=${LAYERFILE##*/} NAME=${FILE%%.*} ID=`grep $LAYERID $LAYERFILE | cut -d "\"" -f 2 | head -1` if [ `find $TMPDIR -name "${NAME}.svg" | \ wc -l` -lt 1 ]; then cat $LAYERFILE >> $NEWSVG fi #----------------------------------------------------------# fi # ============================================================ # else NEWCONNECTION=$FCONNECTION fi NEWFILECONNECTIONS=${NEWFILECONNECTIONS}_${NEWCONNECTION} CNT=`expr $CNT + 1` done FILECONNECTIONS=$NEWFILECONNECTIONS NEWFILECONNECTIONS= fi done FILECONNECTIONS=`echo $FILECONNECTIONS | sed 's/X/0/g'` CONNECTS=${FILECONNECTIONS}_ echo "" >> $NEWSVG sed -i 's/style="display:none"//g' $NEWSVG IOMAKE=$OUTPUTDIR/${NEWNAME}${ROTATOR}${CONNECTS}.svg #----------------------# cp $NEWSVG $IOMAKE #----------------------# K=`expr $K + 1` else echo "COMBINATION EXISTS" rm $LAYERLIST TICK=`expr $TICK + 1` if [ $TICK -gt 100 ]; then K=`expr $K + 100` fi fi done IDCNT=`expr $IDCNT + 1` done done exit 0;