summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSunil Shetye2025-05-01 12:23:02 +0530
committerSunil Shetye2025-05-01 12:23:02 +0530
commit8c98ed20ee24befc2e6d993ed1c2005851e01581 (patch)
tree2457eab6e8817c19a899ae9f17d9316161d0a7b6
parent0f7f3c63b185309a20255b25c0ca45617696a7e4 (diff)
downloadCommon-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-xblocks/Xcos/MxGraphParser.py7
-rwxr-xr-xblocks/Xcos/XmlToXcos.sh6
-rw-r--r--blocks/Xcos/common/AAAAAA.py27
-rwxr-xr-xblocks/xcos2xml/replacesplitblocks.sh16
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