summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLex Neva <github.com@lexneva.name>2020-03-06 22:39:25 -0500
committerLex Neva <github.com@lexneva.name>2020-03-06 22:39:25 -0500
commita4277d19a60f1611658897c18d2548fedf52e8f5 (patch)
tree6e7b4257e8dce94deff60574a69438c5b8d229b6
parent7cc8b0c14e91d2e68212248b8ce66797ade7bb65 (diff)
remove stub
-rwxr-xr-xbin/build-python4
-rw-r--r--lib/inx/utils.py17
-rw-r--r--stub.py69
-rw-r--r--templates/auto_satin.inx2
-rw-r--r--templates/convert_to_satin.inx2
-rw-r--r--templates/cut_satin.inx2
-rw-r--r--templates/embroider.inx2
-rw-r--r--templates/flip.inx2
-rw-r--r--templates/global_commands.inx2
-rw-r--r--templates/input.inx2
-rw-r--r--templates/install.inx2
-rw-r--r--templates/layer_commands.inx2
-rw-r--r--templates/lettering.inx2
-rw-r--r--templates/object_commands.inx2
-rw-r--r--templates/output.inx2
-rw-r--r--templates/params.inx2
-rw-r--r--templates/print.inx2
-rw-r--r--templates/remove_embroidery_settings.inx2
-rw-r--r--templates/simulate.inx2
-rw-r--r--templates/troubleshoot.inx2
-rw-r--r--templates/zip.inx2
21 files changed, 32 insertions, 94 deletions
diff --git a/bin/build-python b/bin/build-python
index 69058593..6c4810dc 100755
--- a/bin/build-python
+++ b/bin/build-python
@@ -55,7 +55,3 @@ mv dist/bin dist/inkstitch
if [ "$BUILD" = "osx" ]; then
rm -rf dist/inkstitch.app/
fi
-
-# Inkscape doesn't let us run native binaries as extensions(?!). Instead we
-# add this stub script which executes the binary that pyinstaller creates.
-cp stub.py dist/inkstitch.py
diff --git a/lib/inx/utils.py b/lib/inx/utils.py
index 1dc96829..a7c98a60 100644
--- a/lib/inx/utils.py
+++ b/lib/inx/utils.py
@@ -1,11 +1,12 @@
import errno
-import os
import gettext
+import os
+import sys
from os.path import dirname
-from jinja2 import Environment, FileSystemLoader
-from ..i18n import translation as default_translation, locale_dir, N_
+from jinja2 import Environment, FileSystemLoader
+from ..i18n import N_, locale_dir, translation as default_translation
_top_path = dirname(dirname(dirname(os.path.realpath(__file__))))
inx_path = os.path.join(_top_path, "inx")
@@ -25,6 +26,16 @@ def build_environment():
env.install_gettext_translations(current_translation)
env.globals["locale"] = current_locale
+ if "BUILD" in os.environ:
+ # building a ZIP release, with inkstitch packaged as a binary
+ if sys.platform == "win32":
+ env.globals["command_tag"] = '<command reldir="extensions">inkstitch/bin/inkstitch.exe</command>'
+ else:
+ env.globals["command_tag"] = '<command reldir="extensions">inkstitch/bin/inkstitch</command>'
+ else:
+ # user is running inkstitch.py directly as a developer
+ env.globals["command_tag"] = '<command reldir="extensions" interpreter="python">inkstitch.py</command>'
+
return env
diff --git a/stub.py b/stub.py
deleted file mode 100644
index c4627891..00000000
--- a/stub.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-
-import os
-import subprocess
-import sys
-import traceback
-
-# ink/stitch
-#
-# stub.py: pyinstaller execution stub
-#
-# pyinstaller packages the inkstitch extensions into nice tidy executables.
-# That's great, but Inkscape can't execute a plain binary as an extension(!).
-#
-# This Python script exists only to execute the actual extension binary. It
-# can be copied to, e.g., "embroider_params.py", in which case it will look
-# for a binary at inkstitch/bin/embroider_params.
-script_name = os.path.basename(__file__)
-
-if script_name.endswith('.py'):
- binary_name = script_name[:-3]
-else:
- # Probably not right, but we can at least try.
- binary_name = script_name
-
-binary_path = os.path.join("inkstitch", "bin", binary_name)
-
-args = sys.argv[:]
-args[0] = binary_path
-
-# os.execve works here for Linux, but only this seems to get the
-# extension output to Inkscape on Windows
-try:
- extension = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- stdout, stderr = extension.communicate()
-except BaseException:
- print >> sys.stderr, "Unexpected error launching Ink/Stitch."
- print >> sys.stderr, "If you're having trouble, please file an issue here, including the text below:"
- print >> sys.stderr, " https://github.com/inkstitch/inkstitch/issues\n"
- print >> sys.stderr, "Tried to launch:", binary_path
- print >> sys.stderr, "Arguments:", args
- print >> sys.stderr, "Debugging information:\n"
- print >> sys.stderr, traceback.format_exc()
- sys.exit(1)
-
-if sys.platform == "win32":
- import msvcrt
-
- msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
-
-try:
- # In Python 3, we need to use sys.stdout.buffer to write binary data to stdout.
- sys.stdout.buffer.write(stdout)
- sys.stdout.buffer.flush()
-except AttributeError:
- # Python 2 doesn't have sys.stdout.buffer but we can write binary data to stdout by default.
- sys.stdout.write(stdout)
- sys.stdout.flush()
-
-stderr = stderr.strip()
-if stderr:
- try:
- sys.stderr.buffer.write(stderr)
- sys.stderr.buffer.flush()
- except AttributeError:
- sys.stderr.write(stderr)
- sys.stderr.flush()
-
-sys.exit(extension.returncode)
diff --git a/templates/auto_satin.inx b/templates/auto_satin.inx
index 60ca29cd..5830d599 100644
--- a/templates/auto_satin.inx
+++ b/templates/auto_satin.inx
@@ -16,6 +16,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/convert_to_satin.inx b/templates/convert_to_satin.inx
index d0f87911..d09b2fc2 100644
--- a/templates/convert_to_satin.inx
+++ b/templates/convert_to_satin.inx
@@ -14,6 +14,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/cut_satin.inx b/templates/cut_satin.inx
index c96d9092..8705e28a 100644
--- a/templates/cut_satin.inx
+++ b/templates/cut_satin.inx
@@ -14,6 +14,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/embroider.inx b/templates/embroider.inx
index f030c8d6..7a7c0e59 100644
--- a/templates/embroider.inx
+++ b/templates/embroider.inx
@@ -23,6 +23,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/flip.inx b/templates/flip.inx
index 763cf7cc..5440caa3 100644
--- a/templates/flip.inx
+++ b/templates/flip.inx
@@ -14,6 +14,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/global_commands.inx b/templates/global_commands.inx
index 24d42c90..d55f77bd 100644
--- a/templates/global_commands.inx
+++ b/templates/global_commands.inx
@@ -19,6 +19,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/input.inx b/templates/input.inx
index 6e810a70..b2db4563 100644
--- a/templates/input.inx
+++ b/templates/input.inx
@@ -12,6 +12,6 @@
</input>
<param name="extension" type="string" gui-hidden="true">input</param>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/install.inx b/templates/install.inx
index adfffd9d..431bcb89 100644
--- a/templates/install.inx
+++ b/templates/install.inx
@@ -12,6 +12,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/layer_commands.inx b/templates/layer_commands.inx
index 6b978e43..4f586363 100644
--- a/templates/layer_commands.inx
+++ b/templates/layer_commands.inx
@@ -18,6 +18,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/lettering.inx b/templates/lettering.inx
index 96e90ca0..3b0c3049 100644
--- a/templates/lettering.inx
+++ b/templates/lettering.inx
@@ -12,6 +12,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/object_commands.inx b/templates/object_commands.inx
index 1b1c40d9..2e973789 100644
--- a/templates/object_commands.inx
+++ b/templates/object_commands.inx
@@ -17,6 +17,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/output.inx b/templates/output.inx
index 6899c5d3..9f92ef71 100644
--- a/templates/output.inx
+++ b/templates/output.inx
@@ -16,6 +16,6 @@
{% set params = "output_params_" + format + ".xml" %}
{% include params ignore missing %}
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/params.inx b/templates/params.inx
index 9f60f4ae..19e24cbe 100644
--- a/templates/params.inx
+++ b/templates/params.inx
@@ -12,6 +12,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/print.inx b/templates/print.inx
index 61385129..d9d59ef3 100644
--- a/templates/print.inx
+++ b/templates/print.inx
@@ -12,6 +12,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/remove_embroidery_settings.inx b/templates/remove_embroidery_settings.inx
index d070f34f..a68ba724 100644
--- a/templates/remove_embroidery_settings.inx
+++ b/templates/remove_embroidery_settings.inx
@@ -19,6 +19,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/simulate.inx b/templates/simulate.inx
index 90f3717c..7cab9850 100644
--- a/templates/simulate.inx
+++ b/templates/simulate.inx
@@ -12,6 +12,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/troubleshoot.inx b/templates/troubleshoot.inx
index 6931fb39..29b72a17 100644
--- a/templates/troubleshoot.inx
+++ b/templates/troubleshoot.inx
@@ -13,6 +13,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>
diff --git a/templates/zip.inx b/templates/zip.inx
index 952123c9..4a24096d 100644
--- a/templates/zip.inx
+++ b/templates/zip.inx
@@ -16,6 +16,6 @@
{% endfor %}
<param name="extension" type="string" gui-hidden="true">zip</param>
<script>
- <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ {{ command_tag | safe }}
</script>
</inkscape-extension>