Merge branch 'master' of git+ssh://gitbox/piccreate
This commit is contained in:
Executable
+179
@@ -0,0 +1,179 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
NUM=0
|
||||||
|
QUEUE=""
|
||||||
|
MAX_NPROC=2 # default
|
||||||
|
REPLACE_CMD=0 # no replacement by default
|
||||||
|
|
||||||
|
USAGE="A simple wrapper for generating jpg pictures out of svg-files in parallel.
|
||||||
|
Usage: `basename $0` [-h] [-i] [-j nb_jobs] command arg_list
|
||||||
|
-h Shows this help
|
||||||
|
-c give the path to the cfg file
|
||||||
|
-i give the path of the svg files without the last /
|
||||||
|
-k chek if the jpg already exist
|
||||||
|
-j Set number of simultanious jobs. Default is 2
|
||||||
|
-o directory where the files should be moved to after creation.
|
||||||
|
Default ist PICCREATE_OUT
|
||||||
|
Examples:
|
||||||
|
`basename $0` -i file -c config
|
||||||
|
`basename $0` -j 3 -i file -c config"
|
||||||
|
|
||||||
|
function queue {
|
||||||
|
QUEUE="$QUEUE $1"
|
||||||
|
NUM=$(($NUM+1))
|
||||||
|
}
|
||||||
|
function regeneratequeue {
|
||||||
|
OLDREQUEUE=$QUEUE
|
||||||
|
QUEUE=""
|
||||||
|
NUM=0
|
||||||
|
for PID in $OLDREQUEUE
|
||||||
|
do
|
||||||
|
if [ -d /proc/$PID ] ; then
|
||||||
|
QUEUE="$QUEUE $PID"
|
||||||
|
NUM=$(($NUM+1))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
function checkqueue {
|
||||||
|
OLDCHQUEUE=$QUEUE
|
||||||
|
for PID in $OLDCHQUEUE
|
||||||
|
do
|
||||||
|
if [ ! -d /proc/$PID ] ; then
|
||||||
|
regeneratequeue # at least one PID has finished
|
||||||
|
echo $PID
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
function cfg_parser {
|
||||||
|
INI_FILE=$1
|
||||||
|
SECTION=$2
|
||||||
|
echo $1
|
||||||
|
echo $2
|
||||||
|
eval `sed -n -e "/^\[$SECTION\]/,/^\s*\[/{/^[^;].*\=.*/p;}" < $INI_FILE`>> trr.txt
|
||||||
|
echo 'helololo'
|
||||||
|
}
|
||||||
|
function get_filepath {
|
||||||
|
# probiere alle möglichen Kombinationen wo das file stehen könnte je
|
||||||
|
# nachdem ob es mit oder ohne Endung, mit oder ohne den Komplettpfad
|
||||||
|
# gegeben wurde
|
||||||
|
FILENAME=$1
|
||||||
|
ENDING=$2
|
||||||
|
DEFAULT_DIR=$3
|
||||||
|
if [ -s $FILENAME ] ; then
|
||||||
|
echo $FILENAME
|
||||||
|
elif [ -s $FILENAME.$ENDING ] ; then
|
||||||
|
echo "$FILENAME.$ENDING"
|
||||||
|
elif [ -s $DEFAULT_DIR/$FILENAME ] ; then
|
||||||
|
echo "$DEFAULT_DIR/$FILENAME"
|
||||||
|
elif [ -s $DEFAULT_DIR/$FILENAME.$ENDING ] ; then
|
||||||
|
echo "$DEFAULT_DIR/$FILENAME.$ENDING"
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion die auf globalen Parametern beruht.
|
||||||
|
# überprüft ob alle notwendigen Angaben vorhanden sind
|
||||||
|
function check_params {
|
||||||
|
if [ -z "$INPUT_FILENAME" ]; then
|
||||||
|
echo "please give input file with -i."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ -z "$CFG_FILENAME" ]; then
|
||||||
|
echo "please give config file with -c."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
INPUT_FILE=`get_filepath $INPUT_FILENAME 'csv' $PICCREATE_WORK`
|
||||||
|
if [ ! -s $INPUT_FILE ] ; then
|
||||||
|
echo "-> input filename does not exist"
|
||||||
|
print "given was: -$INPUT_FILENAME-"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
CFG_PATH=`get_filepath $CFG_FILENAME 'cfg' $PICCREATE_CFG`
|
||||||
|
if [ ! -s $CFG_PATH ]; then
|
||||||
|
echo "-> config file with this name does not exist."
|
||||||
|
print "given was: -$CFG_FILENAME-"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cfg_parser $CFG_PATH "$SECTION_NAME"
|
||||||
|
echo 'using width '$width
|
||||||
|
echo 'using height '$height
|
||||||
|
if [ -z "$width" ]; then
|
||||||
|
echo "please give width=xxx in section [$SECTION_NAME] in config $CFG_FILENAME."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ -z "$height" ]; then
|
||||||
|
echo "please give height=xxx in section [$SECTION_NAME] in config $CFG_FILENAME."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# parse command line
|
||||||
|
if [ $# -eq 0 ]; then # must be at least one arg
|
||||||
|
echo "$USAGE" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CHECKFILE=0
|
||||||
|
|
||||||
|
while getopts "j:i:kc:o:hc:" OPT; do # "j:" waits for an argument "h" doesnt
|
||||||
|
case $OPT in
|
||||||
|
h) echo "$USAGE"
|
||||||
|
exit 0 ;;
|
||||||
|
j) MAX_NPROC=$OPTARG ;;
|
||||||
|
k) CHECKFILE=1 ;;
|
||||||
|
c) CFG_FILENAME=$OPTARG ;;
|
||||||
|
o) OUTDIR=$OPTARG ;;
|
||||||
|
i) INPUT_FILENAME=$OPTARG ;;
|
||||||
|
*) echo "$USAGE" >&2; exit 1; # Default.
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Main program
|
||||||
|
echo Using $MAX_NPROC parallel threads
|
||||||
|
check_params
|
||||||
|
|
||||||
|
# Starte die Generierung
|
||||||
|
echo $INPUT_FILE
|
||||||
|
for i in `ls $INPUT_FILE| grep .svg `
|
||||||
|
do
|
||||||
|
echo $i
|
||||||
|
echo $CHECKFILE
|
||||||
|
ID=`echo "$i" | sed -e 's/;.*//g'`
|
||||||
|
PIC_NAME=`echo "$i" | sed -e 's/.svg/.jpg/g'`
|
||||||
|
FILE_PATH=$INPUT_FILE/$PIC_NAME
|
||||||
|
if [ -s $FILE_PATH ] && [ $CHECKFILE -eq 1 ]
|
||||||
|
then
|
||||||
|
echo $PIC_NAME exists!
|
||||||
|
else
|
||||||
|
RESIZE="${width}x${height}"
|
||||||
|
SWITCHES="-density $density $INPUT_FILE/$ID -resize $RESIZE $INPUT_FILE/$PIC_NAME"
|
||||||
|
CMDLINE="$CMD $SWITCHES"
|
||||||
|
echo $CMDLINE
|
||||||
|
(echo $ID; $CMDLINE) &
|
||||||
|
|
||||||
|
PID=$!
|
||||||
|
queue $PID
|
||||||
|
|
||||||
|
while [ $NUM -ge $MAX_NPROC ]; do
|
||||||
|
checkqueue
|
||||||
|
sleep 0.5
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
wait # wait for all processes to finish before exit
|
||||||
|
|
||||||
|
if [ ! -z $OUTDIR ]; then
|
||||||
|
echo -n moving to $OUTDIR
|
||||||
|
if [ ! -d $OUTDIR ]; then
|
||||||
|
echo creating directory $OUTDIR
|
||||||
|
mkdir $OUTDIR
|
||||||
|
fi
|
||||||
|
mv $PICCREATE_OUT/*.jpg $OUTDIR
|
||||||
|
echo done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# vi:set wrapmargin=0 ai showmatch ts=4 syntax=sh:
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
. setenv.sh
|
||||||
|
# Wo ist das Programm hinkopiert
|
||||||
|
if [ -z $PICCREATE ];then
|
||||||
|
echo please check environment
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
CMD=convert
|
||||||
|
SECTION_NAME=jpgs
|
||||||
|
|
||||||
|
. $PICCREATE_BIN/generationlib
|
||||||
@@ -40,7 +40,7 @@ counter_replace=True
|
|||||||
align=left
|
align=left
|
||||||
|
|
||||||
[jpgs]
|
[jpgs]
|
||||||
width=1200
|
width=1900
|
||||||
height=1200
|
height=700
|
||||||
format=jpg
|
format=jpg
|
||||||
|
density=300
|
||||||
|
|||||||
+1
-2
@@ -10,7 +10,7 @@ import optparse
|
|||||||
import os
|
import os
|
||||||
import ConfigParser
|
import ConfigParser
|
||||||
from utils import CSVImport, CompleteEnding, get_translation
|
from utils import CSVImport, CompleteEnding, get_translation
|
||||||
from django.utils.encoding import smart_str
|
from django.utils.encoding import smart_str, smart_unicode
|
||||||
from string import Template
|
from string import Template
|
||||||
|
|
||||||
class PicError(Exception):
|
class PicError(Exception):
|
||||||
@@ -133,7 +133,6 @@ class Font:
|
|||||||
content = dict(fontconfig.items(letter))
|
content = dict(fontconfig.items(letter))
|
||||||
# lade das svg template dazu ein
|
# lade das svg template dazu ein
|
||||||
glyph_path = os.path.join( font_path, smart_unicode(content['fontname']))
|
glyph_path = os.path.join( font_path, smart_unicode(content['fontname']))
|
||||||
print content['fontname']
|
|
||||||
f = open(glyph_path, 'r')
|
f = open(glyph_path, 'r')
|
||||||
svgstr = f.read()
|
svgstr = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user