@@ -22,12 +22,12 @@ def main():
2222 )
2323
2424 # Using walrus operator & ifs for artificial indentation
25+ # TODO: there may be a better way to do this
2526 if commands := parser .add_subparsers (dest = "command" ):
2627 commands .add_parser ("profile" , help = "View your profile" )
2728 commands .add_parser ("sessions" , help = "View session list" )
2829 if login := commands .add_parser ("login" , help = "Login to Scratch" ):
29- login .add_argument ("--sessid" , dest = "sessid" , nargs = "?" , default = False , const = True ,
30- help = "Login by session ID" )
30+ login .add_argument ("--sessid" , dest = "sessid" , nargs = "?" , default = False , const = True , help = "Login by session ID" )
3131 if group := commands .add_parser ("group" , help = "View current session group" ):
3232 if group_commands := group .add_subparsers (dest = "group_command" ):
3333 group_commands .add_parser ("list" , help = "List all session groups" )
@@ -46,10 +46,13 @@ def main():
4646 parser .add_argument ("-U" , "--username" , dest = "username" , help = "Name of user to look at" )
4747 parser .add_argument ("-P" , "--project" , dest = "project_id" , help = "ID of project to look at" )
4848 parser .add_argument ("-S" , "--studio" , dest = "studio_id" , help = "ID of studio to look at" )
49- parser .add_argument ("-L" , "--session_name" , dest = "session_name" ,
50- help = "Name of (registered) session/login to look at" )
49+ parser .add_argument ("-L" , "--session_name" , dest = "session_name" , help = "Name of (registered) session/login to look at" )
5150
5251 args = parser .parse_args (namespace = cli .ArgSpace ())
52+ handle_args (args , parser )
53+
54+
55+ def handle_args (args : cli .ArgSpace , parser : argparse .ArgumentParser ):
5356 cli .ctx .args = args
5457 cli .ctx .parser = parser
5558
@@ -63,31 +66,36 @@ def main():
6366 case "profile" :
6467 cmd .profile ()
6568 case None :
66- if args .username :
67- user = ctx .session .connect_user (args .username )
68- console .print (cli .try_get_img (user .icon , (30 , 30 )))
69- console .print (user )
70- return
71- if args .studio_id :
72- studio = ctx .session .connect_studio (args .studio_id )
73- console .print (cli .try_get_img (studio .thumbnail , (34 , 20 )))
74- console .print (studio )
75- return
76- if args .project_id :
77- project = ctx .session .connect_project (args .project_id )
78- console .print (cli .try_get_img (project .thumbnail , (30 , 23 )))
79- console .print (project )
80- return
81- if args .session_name :
82- if sess := ctx .db_get_sess (args .session_name ):
83- console .print (sess )
84- else :
85- raise ValueError (f"No session logged in called { args .session_name !r} "
86- f"- try using `scratch sessions` to see available sessions" )
87- return
88-
89- parser .print_help ()
90-
91-
92- if __name__ == '__main__' :
69+ handle_nocmd (args , parser )
70+
71+
72+ def handle_nocmd (args : cli .ArgSpace , parser : argparse .ArgumentParser ):
73+ if args .username :
74+ user = ctx .session .connect_user (args .username )
75+ console .print (cli .try_get_img (user .icon , (30 , 30 )))
76+ console .print (user )
77+ return
78+ if args .studio_id :
79+ studio = ctx .session .connect_studio (args .studio_id )
80+ console .print (cli .try_get_img (studio .thumbnail , (34 , 20 )))
81+ console .print (studio )
82+ return
83+ if args .project_id :
84+ project = ctx .session .connect_project (args .project_id )
85+ console .print (cli .try_get_img (project .thumbnail , (30 , 23 )))
86+ console .print (project )
87+ return
88+ if args .session_name :
89+ if sess := ctx .db_get_sess (args .session_name ):
90+ console .print (sess )
91+ else :
92+ raise ValueError (
93+ f"No session logged in called { args .session_name !r} - try using `scratch sessions` to see available sessions"
94+ )
95+ return
96+
97+ parser .print_help ()
98+
99+
100+ if __name__ == "__main__" :
93101 main ()
0 commit comments