import argparse import sys import trygvis.eda.cli as cli def main(): parser = argparse.ArgumentParser() subparsers = parser.add_subparsers(dest="cmd") # kicad-* p = subparsers.add_parser("kicad-bom-to-ttl") p.add_argument("-o", "--output", required=False) p.add_argument("-i", "--input", required=False) # db-* p = subparsers.add_parser("add-to-db") p.add_argument("-d", "--db", required=True) p.add_argument("files", nargs='*') p = subparsers.add_parser("db-stats") p.add_argument("-d", "--db", required=True) # digikey-* p = subparsers.add_parser("digikey-download-for-schematic") p.add_argument("-d", "--db", required=True) p.add_argument("--schematic", required=True) p = subparsers.add_parser("digikey-download-attribute-types-for-category") p.add_argument("-c", "--category", required=True) p.add_argument("-s", "--sub-category", required=True) p.add_argument("-o", "--output", required=False) # Other p = subparsers.add_parser("make-bom") p.add_argument("-d", "--db", required=True) p.add_argument("--schematic", required=True) args = parser.parse_args() cli.init() if args.cmd == "kicad-bom-to-ttl": from trygvis.eda.cli import kicad_bom_to_ttl if args.input is not None: src = open(args.input, "r") else: src = sys.stdin if args.output is not None: dst = open(args.output, "wb") else: dst = sys.stdout.buffer with src, dst: kicad_bom_to_ttl.run(src, dst, args) elif args.cmd == "add-to-db": from trygvis.eda.cli import add_to_db add_to_db.run(args.files, args.db, args) elif args.cmd == "db-stats": from trygvis.eda.cli import db_stats db_stats.run(args.db) elif args.cmd == "make-bom": from trygvis.eda.cli import make_bom make_bom.run(args.schematic, args.db) elif args.cmd == "digikey-download-for-schematic": from trygvis.eda.cli import digikey_download_for_schematic digikey_download_for_schematic.run(args.schematic, args.db, args) elif args.cmd == "digikey-download-attribute-types-for-category": from trygvis.eda.cli import digikey_download_attribute_types_for_category digikey_download_attribute_types_for_category.run(args.category, args.sub_category, args.output, args) else: sys.exit("Unknown command: %s" % args.cmd)