diff options
author | Sunil Shetye | 2025-05-01 12:23:02 +0530 |
---|---|---|
committer | Sunil Shetye | 2025-05-01 12:23:02 +0530 |
commit | 8c98ed20ee24befc2e6d993ed1c2005851e01581 (patch) | |
tree | 2457eab6e8817c19a899ae9f17d9316161d0a7b6 | |
parent | 0f7f3c63b185309a20255b25c0ca45617696a7e4 (diff) | |
download | Common-Interface-Project-8c98ed20ee24befc2e6d993ed1c2005851e01581.tar.gz Common-Interface-Project-8c98ed20ee24befc2e6d993ed1c2005851e01581.tar.bz2 Common-Interface-Project-8c98ed20ee24befc2e6d993ed1c2005851e01581.zip |
add support for adding context in script
-rwxr-xr-x | blocks/Xcos/MxGraphParser.py | 7 | ||||
-rwxr-xr-x | blocks/Xcos/XmlToXcos.sh | 6 | ||||
-rw-r--r-- | blocks/Xcos/common/AAAAAA.py | 27 | ||||
-rwxr-xr-x | blocks/xcos2xml/replacesplitblocks.sh | 16 |
4 files changed, 42 insertions, 14 deletions
diff --git a/blocks/Xcos/MxGraphParser.py b/blocks/Xcos/MxGraphParser.py index 6c14fd42..dc3e16bd 100755 --- a/blocks/Xcos/MxGraphParser.py +++ b/blocks/Xcos/MxGraphParser.py @@ -9,13 +9,14 @@ import defusedxml.ElementTree as goodET from xcosblocks import process_xcos_model, remove_hyphen_number -if len(sys.argv) != 3: - print("Usage: %s filename.xml workspace.dat" % sys.argv[0]) +if len(sys.argv) != 4: + print("Usage: %s filename.xml workspace.dat context" % sys.argv[0]) sys.exit(1) filename = sys.argv[1] (basename, ext) = os.path.splitext(filename) workspace_file = sys.argv[2] +context = sys.argv[3] if ext != '.xml': print("Usage: %s filename.xml workspace.dat" % sys.argv[0]) @@ -30,7 +31,7 @@ model = tree.getroot() rootattribid = '0:1:0' parentattribid = '0:2:0' outdiagram = process_xcos_model(model, title, rootattribid, parentattribid, - workspace_file) + workspace_file, context) outtree = ET.ElementTree(outdiagram) diff --git a/blocks/Xcos/XmlToXcos.sh b/blocks/Xcos/XmlToXcos.sh index 05cde250..df8a32c2 100755 --- a/blocks/Xcos/XmlToXcos.sh +++ b/blocks/Xcos/XmlToXcos.sh @@ -25,6 +25,8 @@ fi WORKSPACE="$2" +CONTEXT="" + set -e TMPFILE2="$(mktemp -t XXXXXX.xml)" @@ -61,8 +63,8 @@ INPUT1="$BASE-$rv.xml" xmllint --format "$INPUT1" >"$TMPFILE2" cp -f "$TMPFILE2" "$INPUT1" -echo "Running Xcos/MxGraphParser.py $INPUT1 $WORKSPACE" >&2 -Xcos/MxGraphParser.py "$INPUT1" "$WORKSPACE" >&2 +echo "Running Xcos/MxGraphParser.py $INPUT1 $WORKSPACE $CONTEXT" >&2 +Xcos/MxGraphParser.py "$INPUT1" "$WORKSPACE" "$CONTEXT" >&2 INPUT1="$BASE.xcos" echo "Created $INPUT1" >&2 diff --git a/blocks/Xcos/common/AAAAAA.py b/blocks/Xcos/common/AAAAAA.py index d53248ed..80f34e64 100644 --- a/blocks/Xcos/common/AAAAAA.py +++ b/blocks/Xcos/common/AAAAAA.py @@ -185,6 +185,7 @@ class ScilabWorkspace: if context not in [None, '', 'None']: msg = is_safe_string('context', context) if not msg: + print(f'setting context={context}') cmd += f"execstr('{context}');" else: print(f"Ignoring unsafe context {context}: {msg}") @@ -202,6 +203,28 @@ class ScilabWorkspace: self.child = pexpect.spawn(scilab_cmd[0], scilab_cmd[1:], env=env, encoding='utf-8', timeout=15) self.child.expect(SCILAB_PROMPT) + def add_context(self, context): + if context in [None, '', 'None']: + return + + msg = is_safe_string('context', context) + if msg: + print(f"Ignoring unsafe context {context}: {msg}") + return + + if self.context == context: + print(f'context already set to {context}') + return + + if self.context not in [None, '', 'None']: + print(f'adding new context={context}') + self.context += context + else: + print(f'setting context={context}') + self.context = context + + self.send_command(f"execstr('{context}');") + def clean_output(self, text, expr): # Remove echoed input and Scilab formatting text = re.sub(ANSI_ESCAPE, '', text) @@ -1598,12 +1621,12 @@ def getSplitPoints(attrib, switch_split, blkgeometry, sourceVertex, targetVertex def process_xcos_model(model, title, rootattribid, parentattribid, - workspace_file=None): + workspace_file=None, context=None): global WORKSPACE started_workspace = False if WORKSPACE is None: - WORKSPACE = ScilabWorkspace(title, workspace_file) + WORKSPACE = ScilabWorkspace(title, workspace_file, context) started_workspace = True checkModelTag(model) diff --git a/blocks/xcos2xml/replacesplitblocks.sh b/blocks/xcos2xml/replacesplitblocks.sh index c2e9ad07..6c5a29c5 100755 --- a/blocks/xcos2xml/replacesplitblocks.sh +++ b/blocks/xcos2xml/replacesplitblocks.sh @@ -2,12 +2,12 @@ usage() { echo "Usage:" >&2 - echo " $0 input-file.xcos workspace.dat" >&2 - echo " $0 input-file.xml workspace.dat" >&2 + echo " $0 input-file.xcos [workspace.dat] [context]" >&2 + echo " $0 input-file.xml [workspace.dat] [context]" >&2 exit 101 } -if test $# -ne 1 -a $# -ne 2; then +if test $# -lt 1 -o $# -gt 3; then usage fi @@ -72,6 +72,8 @@ if test -n "$WORKSPACE"; then fi fi +CONTEXT="$3" + set -e TMPFILE1="$(mktemp -t XXXXXX.xml)" @@ -86,8 +88,8 @@ if test -n "$INPUTXML"; then fi # MxGraphParser creates $INPUT - echo "Running Xcos/MxGraphParser.py $INPUTXML" >&2 - Xcos/MxGraphParser.py "$INPUTXML" >&2 + echo "Running Xcos/MxGraphParser.py $INPUTXML $WORKSPACE $CONTEXT" >&2 + Xcos/MxGraphParser.py "$INPUTXML" "$WORKSPACE" "$CONTEXT" >&2 fi count=$(grep -c '^ <SplitBlock' "$INPUT") || : @@ -157,8 +159,8 @@ INPUT1="$BASE-$rv.xml" xmllint --format "$INPUT1" >"$TMPFILE2" cp -f "$TMPFILE2" "$INPUT1" -echo "Running Xcos/MxGraphParser.py $INPUT1 $WORKSPACE" >&2 -Xcos/MxGraphParser.py "$INPUT1" "$WORKSPACE" >&2 +echo "Running Xcos/MxGraphParser.py $INPUT1 $WORKSPACE $CONTEXT" >&2 +Xcos/MxGraphParser.py "$INPUT1" "$WORKSPACE" "$CONTEXT" >&2 INPUT1="$BASE.xcos" echo "Created $INPUT1" >&2 |