1010from .params import IPSPOT_OVERVIEW , IPSPOT_REPO , IPSPOT_VERSION
1111from .params import PUBLIC_IPV4_ERROR , PRIVATE_IPV4_ERROR
1212from .params import PUBLIC_IPV6_ERROR , PRIVATE_IPV6_ERROR
13+ from .params import EXIT_MESSAGE
1314
1415
1516def _print_ipspot_info () -> None : # pragma: no cover
@@ -93,8 +94,8 @@ def _print_report(ipv4_api: IPv4API,
9394 print (" Error: {public_ipv6_result}" .format (public_ipv6_result = PUBLIC_IPV6_ERROR ))
9495
9596
96- def main () -> None : # pragma: no cover
97- """CLI main function ."""
97+ def _parse_args () -> argparse . Namespace : # pragma: no cover
98+ """Parse arguments ."""
9899 parser = argparse .ArgumentParser ()
99100 parser .add_argument (
100101 '--ipv4-api' ,
@@ -117,8 +118,16 @@ def main() -> None: # pragma: no cover
117118 parser .add_argument ('--max-retries' , help = 'number of retries' , type = int , default = 0 )
118119 parser .add_argument ('--retry-delay' , help = 'delay between retries (in seconds)' , type = float , default = 1.0 )
119120 parser .add_argument ('--backoff-factor' , help = 'backoff factor' , type = float , default = 1.0 )
120-
121121 args = parser .parse_args ()
122+ return args
123+
124+
125+ def _run (args : argparse .Namespace ) -> None : # pragma: no cover
126+ """
127+ Run ipspot CLI.
128+
129+ :param args: arguments
130+ """
122131 if args .version :
123132 print (IPSPOT_VERSION )
124133 elif args .info :
@@ -135,3 +144,12 @@ def main() -> None: # pragma: no cover
135144 max_retries = args .max_retries ,
136145 retry_delay = args .retry_delay ,
137146 backoff_factor = args .backoff_factor )
147+
148+
149+ def main () -> None : # pragma: no cover
150+ """CLI main function."""
151+ try :
152+ args = _parse_args ()
153+ _run (args )
154+ except (KeyboardInterrupt , EOFError ):
155+ print (EXIT_MESSAGE )
0 commit comments