]> git.ekhem.eu.org Git - gdrive_knife.git/commitdiff
Add a subprogram for deleting files from the drive.
authorJakub Czajka <jakub@ekhem.eu.org>
Tue, 12 Sep 2023 18:13:50 +0000 (20:13 +0200)
committerJakub Czajka <jakub@ekhem.eu.org>
Sun, 19 Nov 2023 12:29:42 +0000 (13:29 +0100)
gdrive_knife.py

index 31192c6cb3eb4a41edd131f5eafa2c1fd07bc591..bdadb848573ec8ba65868f1a66ea6ef1381ea713 100644 (file)
@@ -153,6 +153,17 @@ def upload(args):
         drive.files().create(body=body, media_body=media).execute()
         print(f'Created {path} on drive.')
 
+def delete(args):
+    drive = get_drive_client(args.token)
+
+    maybe_id = get_file_id(drive, args.path)
+    if not maybe_id:
+        print(f'File {args.path} not found.')
+        sys.exit(1)
+
+    drive.files().delete(fileId=maybe_id).execute()
+    print(f'Deleted {args.path} on drive.')
+
 if __name__ == '__main__':
     parser = argparse.ArgumentParser(prog='gdrive_knife', description='Swiss '
         'army knife for working with Google Drive.')
@@ -199,6 +210,13 @@ if __name__ == '__main__':
         'authentication token.')
     upload_parser.set_defaults(func=upload)
 
+    delete_parser = subparsers.add_parser('delete', help='Delete a file.')
+    delete_parser.add_argument('path', help='Path on the drive to delete.')
+    delete_parser.add_argument('-t', dest='token', required=True,
+        type=lambda x : file_path(parser, x), help='File with the '
+        'authentication token.')
+    delete_parser.set_defaults(func=delete)
+
     args = parser.parse_args()
 
     args.func(args)