Skip to content

Commit 1ce0795

Browse files
committed
Made cli more error proof.
1 parent 27e834a commit 1ce0795

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

src/gitfetch/cli.py

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import argparse
66
import sys
7-
import os
87
import subprocess
98
from typing import Optional
109

@@ -29,6 +28,12 @@ def _background_refresh_cache_subprocess(username: str) -> None:
2928
provider = config_manager.get_provider()
3029
provider_url = config_manager.get_provider_url()
3130
token = config_manager.get_token()
31+
if provider == None:
32+
print("Provider not set")
33+
exit(1)
34+
if provider_url == None:
35+
print("Provider url not set")
36+
exit(1)
3237
fetcher = _create_fetcher(provider, provider_url, token)
3338

3439
fresh_user_data = fetcher.fetch_user_data(username)
@@ -201,6 +206,7 @@ def main() -> int:
201206

202207
# Check for --local flag
203208
if args.local:
209+
import os
204210
if not os.path.exists('.git'):
205211
print("Error: --local requires .git folder", file=sys.stderr)
206212
return 1
@@ -261,6 +267,13 @@ def main() -> int:
261267
provider = config_manager.get_provider()
262268
provider_url = config_manager.get_provider_url()
263269
token = config_manager.get_token()
270+
if provider == None:
271+
print("Provider not set")
272+
return 1
273+
if provider_url == None:
274+
print("Provider url not set")
275+
return 1
276+
264277
fetcher = _create_fetcher(provider, provider_url, token)
265278

266279
# Handle custom box character
@@ -354,6 +367,10 @@ def main() -> int:
354367
'website': '',
355368
}
356369

370+
if display_name == None:
371+
print("display name not set")
372+
return 1
373+
357374
formatter.display(
358375
display_name,
359376
user_data,
@@ -534,7 +551,7 @@ def _create_fetcher(provider: str, base_url: str, token: Optional[str] = None):
534551
def _initialize_gitfetch(config_manager: ConfigManager) -> bool:
535552
"""
536553
Initialize gitfetch by creating config directory and setting
537-
the authenticated user as default.
554+
multiple configuration options.
538555
539556
Args:
540557
config_manager: ConfigManager instance
@@ -566,18 +583,24 @@ def _initialize_gitfetch(config_manager: ConfigManager) -> bool:
566583

567584
# Ask for token if needed
568585
token = None
569-
if provider in ['gitlab', 'gitea', 'sourcehut']:
586+
if provider in ['gitlab', 'gitea', 'sourcehut', 'github']:
570587
token_input = input(
571-
f"Enter your {provider} personal access token "
588+
f"Enter your {provider} personal access token{', needed for private repositories' if provider == 'github' else ''}\n"
589+
+
572590
"(optional, press Enter to skip): "
573591
).strip()
574592
if token_input:
575593
token = token_input
576594
config_manager.set_token(token)
577595

578596
# Create appropriate fetcher
597+
url = config_manager.get_provider_url()
598+
if url == None:
599+
print("Provider url could not be found.", file=sys.stderr)
600+
return False
601+
579602
fetcher = _create_fetcher(
580-
provider, config_manager.get_provider_url(), token
603+
provider, url, token
581604
)
582605

583606
# Try to get authenticated user

0 commit comments

Comments
 (0)