Skip to content

Commit fc01b12

Browse files
committed
Move main to __init__ and enable python -m jockey.
1 parent 3c01464 commit fc01b12

File tree

3 files changed

+61
-62
lines changed

3 files changed

+61
-62
lines changed

pyproject.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ packages = [
2222
]
2323

2424
[tool.poetry.scripts]
25-
juju-jockey = "jockey.__main__:main"
25+
juju-jockey = "jockey:main"
2626

2727
[tool.poetry.dependencies]
2828
python = ">=3.10,<3.13"
@@ -145,7 +145,7 @@ version = "6.7.0"
145145
disable-upx = true
146146

147147
[tool.poetry-pyinstaller-plugin.scripts]
148-
juju-jockey = { source = "src/jockey/__main__.py", type = "onefile", bundle = false }
148+
juju-jockey = { source = "src/jockey/__init__.py", type = "onefile", bundle = false }
149149

150150
[tool.commitizen]
151151
tag_format = "v$version"

src/jockey/__init__.py

+59
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,62 @@
1313
__copyright__ = "Copyright (c) 2024, Connor Chamberlain"
1414

1515
__docformat__ = "numpy"
16+
17+
import logging
18+
import os
19+
from pkgutil import get_data
20+
import sys
21+
from typing import Optional, Sequence
22+
23+
from rich import print
24+
from rich.console import Console
25+
from rich.markdown import Markdown
26+
27+
from jockey.__args__ import parse_args
28+
from jockey.core import query
29+
from jockey.log import configure_logging
30+
31+
32+
logger = logging.getLogger(__name__)
33+
34+
35+
if "SNAP" in os.environ:
36+
os.environ["PATH"] += ":" + os.path.join(os.environ["SNAP"], "usr", "juju", "bin")
37+
38+
39+
def info() -> Markdown:
40+
info_data = get_data("jockey", "info.md")
41+
info_decoded = info_data.decode("utf-8") if info_data else ""
42+
return Markdown(info_decoded)
43+
44+
45+
def print_info(console: Optional[Console] = None) -> None:
46+
if not console:
47+
console = Console(width=120)
48+
49+
console.print(info())
50+
51+
52+
def main(argv: Optional[Sequence[str]] = None) -> int:
53+
# parse command-line arguments and configure logging
54+
if argv is None:
55+
argv = sys.argv[1:]
56+
57+
args = parse_args(argv)
58+
logger.debug("Parsed command-line arguments:\n%r", args)
59+
60+
verbosity = args.verbose if "verbose" in args else 0
61+
configure_logging(verbosity)
62+
63+
# check if OBJECT is requesting the informational message
64+
if args.object == "info":
65+
print_info()
66+
return 0
67+
68+
filters = args.filters if "filters" in args else []
69+
print("\n".join(query(object_type=args.object, filter_strings=filters, file=args.file, model=args.model)))
70+
return 0
71+
72+
73+
if __name__ == "__main__":
74+
exit(main(sys.argv[1:]))

src/jockey/__main__.py

-60
This file was deleted.

0 commit comments

Comments
 (0)