X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=interpret-cairo-to-svg.py;fp=interpret-cairo-to-svg.py;h=bc3ad355460f8c4e824734d6e3d1ba5fbffda6eb;hb=1e320ca83bc7836cc1462bc67e4048c5c074a469;hp=0000000000000000000000000000000000000000;hpb=f49cdc229d3db14bb00667c9e6d105c1d67274a8;p=zombocom-ai diff --git a/interpret-cairo-to-svg.py b/interpret-cairo-to-svg.py new file mode 100755 index 0000000..bc3ad35 --- /dev/null +++ b/interpret-cairo-to-svg.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +import cairo +import tempfile +import os +import sys + +OUTPUT_DIR_PREFIX='/srv/cworth.org/zombocom' +OUTPUT_DIR="{}/busart".format(OUTPUT_DIR_PREFIX) + +input = sys.stdin.read() + +# Do at least a modicum of a safety check +if "import" in input: + sys.stderr.write("Error: Cowardly refusing to interpret script with 'import'") + sys.exit(1) + +(fd, filename) = tempfile.mkstemp(suffix=".svg", prefix="busart", dir=OUTPUT_DIR); +os.close(fd) +os.chmod(filename, 0o644); + +# Also delete our import for some more safety +del tempfile +del os +del sys + +with cairo.SVGSurface(filename, 512, 512) as surface: + cr = cairo.Context(surface); + del cairo + cr.set_line_width(6); + exec(input) + +web_file = filename.removeprefix(OUTPUT_DIR_PREFIX); + +print(web_file); + +