-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvectorcraft.py
More file actions
42 lines (34 loc) · 1.29 KB
/
vectorcraft.py
File metadata and controls
42 lines (34 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/env python3
import sys
import os
import argparse
from pyfiglet import Figlet
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from source.cli import run_cli
from source.utils import set_verbose, console
VERSION = "2.0.0"
def print_banner():
f = Figlet(font="slant")
banner = f.renderText("VectorCraft")
console.print("[bold cyan]" + "-" * 60 + "[/]")
print(banner)
console.print("[bold cyan]" + "-" * 60 + "[/]")
def main():
parent_parser = argparse.ArgumentParser(add_help=False)
parent_parser.add_argument("--verbose", action="store_true", help="Enable verbose logging")
parent_parser.add_argument("--no-banner", action="store_true", help="Suppress banner")
parent_parser.add_argument("--version", action="version", version=f"VectorCraft v{VERSION}")
args, remaining = parent_parser.parse_known_args()
if args.verbose: set_verbose(True)
if not args.no_banner: print_banner()
try: run_cli(remaining)
except KeyboardInterrupt:
console.print("\n[!] Exiting safely...", style="red")
sys.exit(0)
except Exception as e:
console.print(f"\n[!] Fatal error: {e}", style="red")
if args.verbose:
import traceback
traceback.print_exc()
sys.exit(1)
if __name__ == "__main__": main()