Code

Fixed problems with previous commit (trunk revision 18463) relating to uniconv.ext...
authorozmikepittman <ozmikepittman@users.sourceforge.net>
Tue, 29 Apr 2008 16:38:53 +0000 (16:38 +0000)
committerozmikepittman <ozmikepittman@users.sourceforge.net>
Tue, 29 Apr 2008 16:38:53 +0000 (16:38 +0000)
share/extensions/cdr2svg.sh [deleted file]
share/extensions/uniconv-ext.py [new file with mode: 0644]

diff --git a/share/extensions/cdr2svg.sh b/share/extensions/cdr2svg.sh
deleted file mode 100755 (executable)
index e69de29..0000000
diff --git a/share/extensions/uniconv-ext.py b/share/extensions/uniconv-ext.py
new file mode 100644 (file)
index 0000000..d114b1a
--- /dev/null
@@ -0,0 +1,69 @@
+#!/usr/bin/env python\r
+\r
+"""\r
+uniconv-ext.py\r
+Python script for running UniConvertor in Inkscape extensions\r
+\r
+Copyright (C) 2008 Stephen Silver\r
+\r
+This program is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2 of the License, or\r
+(at your option) any later version.\r
+\r
+This program is distributed in the hope that it will be useful,\r
+but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+GNU General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with this program; if not, write to the Free Software\r
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
+\r
+"""\r
+\r
+import os\r
+import random\r
+import subprocess\r
+import sys\r
+import tempfile\r
+\r
+# We need a filename ending in ".svg" for UniConvertor.\r
+# This is a hack.\r
+chars = list("0123456789abcdefghijklmnopqrstuvwxyz")\r
+while True:\r
+    random.shuffle(chars)\r
+    svgfile = os.path.join(tempfile.gettempdir(), ''.join(chars) + '.svg')\r
+    if not os.path.exists(svgfile):\r
+        break\r
+\r
+# Run UniConvertor, and determine our return code.\r
+try:\r
+    p = subprocess.Popen('uniconv "%s" "%s"' % (sys.argv[1], svgfile),\r
+                         shell=True, stderr=subprocess.PIPE)\r
+    err = p.stderr.read()\r
+    rc = p.wait()\r
+    if rc:\r
+        sys.stderr.write("UniConvertor failed: %s\n" % err)\r
+        rc = 1\r
+except Exception, inst:\r
+    sys.stderr.write("Spawn error: %s\n" % str(inst))\r
+    rc = 1\r
+\r
+# If successful, copy the SVG file to stdout.\r
+if rc == 0:\r
+    try:\r
+        f = open(svgfile, "rU")\r
+        for line in f:\r
+            sys.stdout.write(line)\r
+        f.close()\r
+    except IOError, inst:\r
+        sys.stderr.write("Error reading temporary SVG file: %s\n" % str(inst))\r
+        rc = 1\r
+\r
+# Clean up and return.\r
+try:\r
+    os.remove(svgfile)\r
+except Exception:\r
+    pass\r
+sys.exit(rc)\r