aboutsummaryrefslogtreecommitdiff
path: root/trygvis/eda/cli/kicad_bom_to_ttl.py
diff options
context:
space:
mode:
Diffstat (limited to 'trygvis/eda/cli/kicad_bom_to_ttl.py')
-rwxr-xr-xtrygvis/eda/cli/kicad_bom_to_ttl.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/trygvis/eda/cli/kicad_bom_to_ttl.py b/trygvis/eda/cli/kicad_bom_to_ttl.py
index c7d6899..b017767 100755
--- a/trygvis/eda/cli/kicad_bom_to_ttl.py
+++ b/trygvis/eda/cli/kicad_bom_to_ttl.py
@@ -3,6 +3,7 @@
import functools
import os.path
import re
+import sys
import xml.etree.ElementTree
from urllib.parse import quote_plus
@@ -246,9 +247,27 @@ class Export(object):
return kicad_rdf.KICAD_BOARD[title]
-def run(src, dst, args):
- from trygvis.eda import cli
+def run(args):
+ if args.input is not None:
+ src = open(args.input, "r")
+ else:
+ src = sys.stdin
+ if args.output is not None:
+ parent = os.path.dirname(args.output)
+ if not os.path.exists(parent):
+ os.mkdir(parent)
+ dst = open(args.output, "wb")
+ else:
+ dst = sys.stdout.buffer
+
+ schematic_url = args.schematic_url if hasattr(args, 'schematic_url') else None
+
+ with src, dst:
+ process(src, dst, schematic_url)
+
+
+def process(src, dst, schematic_url):
tree = xml.etree.ElementTree.parse(src)
root = tree.getroot()
@@ -316,7 +335,7 @@ def run(src, dst, args):
# if digikey is not None:
# cli.info(' Digikey: %s' % digikey)
- schematic_url = args.schematic_url if hasattr(args, 'schematic_url') else export.generate_schematic_url()
+ schematic_url = schematic_url if schematic_url is not None else export.generate_schematic_url()
# cli.info()
# cli.info('=== Summary ===')