44from rich .markup import escape
55from rich .table import Table
66
7+
78def _list ():
89 table = Table (title = "All groups" )
910 table .add_column ("Name" )
@@ -15,40 +16,41 @@ def _list():
1516 db .cursor .execute ("SELECT USERNAME FROM GROUP_USERS WHERE GROUP_NAME=?" , (name ,))
1617 usernames = db .cursor .fetchall ()
1718
18- table .add_row (escape (name ), escape (description ),
19- '\n ' .join (f"{ i } . { u } " for i , (u ,) in enumerate (usernames )))
19+ table .add_row (escape (name ), escape (description ), "\n " .join (f"{ i } . { u } " for i , (u ,) in enumerate (usernames )))
2020
2121 console .print (table )
2222
23+
2324def add (group_name : str ):
2425 accounts = input ("Add accounts (split by space): " ).split ()
2526 for account in accounts :
2627 ctx .db_add_to_group (group_name , account )
2728
29+
2830def remove (group_name : str ):
2931 accounts = input ("Remove accounts (split by space): " ).split ()
3032 for account in accounts :
3133 ctx .db_remove_from_group (group_name , account )
3234
35+
3336def new ():
3437 console .rule (f"New group { escape (ctx .args .group_name )} " )
3538 if ctx .db_group_exists (ctx .args .group_name ):
3639 raise ValueError (f"Group { escape (ctx .args .group_name )} already exists" )
3740
3841 db .conn .execute ("BEGIN" )
39- db .cursor .execute ("INSERT INTO GROUPS (NAME, DESCRIPTION) "
40- "VALUES (?, ?)" , (ctx .args .group_name , input ("Description: " )))
42+ db .cursor .execute ("INSERT INTO GROUPS (NAME, DESCRIPTION) VALUES (?, ?)" , (ctx .args .group_name , input ("Description: " )))
4143 db .conn .commit ()
4244 add (ctx .args .group_name )
4345
4446 _group (ctx .args .group_name )
4547
48+
4649def _group (group_name : str ):
4750 """
4851 Display information about a group
4952 """
50- db .cursor .execute (
51- "SELECT NAME, DESCRIPTION FROM GROUPS WHERE NAME = ?" , (group_name ,))
53+ db .cursor .execute ("SELECT NAME, DESCRIPTION FROM GROUPS WHERE NAME = ?" , (group_name ,))
5254 result = db .cursor .fetchone ()
5355 if result is None :
5456 print ("No group selected!!" )
@@ -61,13 +63,13 @@ def _group(group_name: str):
6163
6264 table = Table (title = escape (group_name ))
6365 table .add_column (escape (name ))
64- table .add_column (' Usernames' )
66+ table .add_column (" Usernames" )
6567
66- table .add_row (escape (description ),
67- '\n ' .join (f"{ i } . { u } " for i , u in enumerate (usernames )))
68+ table .add_row (escape (description ), "\n " .join (f"{ i } . { u } " for i , u in enumerate (usernames )))
6869
6970 console .print (table )
7071
72+
7173def switch ():
7274 console .rule (f"Switching to { escape (ctx .args .group_name )} " )
7375 if not ctx .db_group_exists (ctx .args .group_name ):
@@ -76,6 +78,7 @@ def switch():
7678 ctx .current_group_name = ctx .args .group_name
7779 _group (ctx .current_group_name )
7880
81+
7982def delete (group_name : str ):
8083 print (f"Deleting { group_name } " )
8184 if not ctx .db_group_exists (group_name ):
@@ -85,17 +88,30 @@ def delete(group_name: str):
8588
8689 ctx .db_group_delete (group_name )
8790
91+
8892def copy (group_name : str , new_name : str ):
8993 print (f"Copying { group_name } as { new_name } " )
9094 if not ctx .db_group_exists (group_name ):
9195 raise ValueError (f"Group { group_name } does not exist" )
9296
9397 ctx .db_group_copy (group_name , new_name )
9498
99+
95100def rename (group_name : str , new_name : str ):
96101 copy (group_name , new_name )
97102 delete (group_name )
98103
104+
105+ def delete_cmd ():
106+ if input ("Are you sure? (y/N): " ).lower () != "y" :
107+ return
108+ delete (ctx .current_group_name )
109+ new_current = ctx .db_first_group_name
110+ print (f"Switching to { new_current } " )
111+ ctx .current_group_name = new_current
112+ _group (new_current )
113+
114+
99115def group ():
100116 match ctx .args .group_command :
101117 case "list" :
@@ -109,14 +125,7 @@ def group():
109125 case "remove" :
110126 remove (ctx .current_group_name )
111127 case "delete" :
112- if input ("Are you sure? (y/N): " ).lower () != "y" :
113- return
114- delete (ctx .current_group_name )
115- new_current = ctx .db_first_group_name
116- print (f"Switching to { new_current } " )
117- ctx .current_group_name = new_current
118- _group (new_current )
119-
128+ delete_cmd ()
120129 case "copy" :
121130 copy (ctx .current_group_name , ctx .args .group_name )
122131 case "rename" :
0 commit comments