def delete_account(yes=False, index=None, email=None, account_id=None):
click.echo('All OneDrive accounts associated with user "%s":\n' % context.user_name)
all_account_ids = print_all_accounts(context)
click.echo()
if index is None and email is None and account_id is None:
# Print account table and ask which account to delete.
index = click.prompt('Please enter row number of the account to delete (CTRL+C to abort)', type=int)
if index is not None:
if isinstance(index, int) and 0 <= index < len(all_account_ids):
account_id = all_account_ids[index]
else:
error('Index is not a valid row number.')
return
if email is not None:
try:
account_id = email_to_account_id(context, email, all_account_ids)
except Exception as e:
error(str(e))
return
if account_id is not None:
if account_id not in all_account_ids:
error('Account ID "%s" is not found.' % account_id)
return
account = context.get_account(account_id)
prompt_text = 'Are you sure to delete account %s?' % account
if yes or click.confirm(prompt_text):
context.delete_account(account_id)
keyring.delete_password(OneDriveAPISession.KEYRING_SERVICE_NAME, get_keyring_key(account_id))
save_context(context)
success('Successfully deleted account from onedrived.')
else:
click.echo('Operation canceled.')
评论列表
文章目录