src/eric7/RemoteServerInterface/EricServerFileSystemInterface.py

branch
server
changeset 10574
622e59b51640
parent 10561
be23a662d709
child 10576
0cf5ebf17411
equal deleted inserted replaced
10573:c4f503f40caf 10574:622e59b51640
11 import contextlib 11 import contextlib
12 12
13 from PyQt6.QtCore import QEventLoop, QObject 13 from PyQt6.QtCore import QEventLoop, QObject
14 14
15 from eric7.RemoteServer.EricRequestCategory import EricRequestCategory 15 from eric7.RemoteServer.EricRequestCategory import EricRequestCategory
16 from eric7.SystemUtilities import FileSystemUtilities
16 17
17 18
18 # TODO: sanitize all file names with FileSystemUtilities.plainFileName() 19 # TODO: sanitize all file names with FileSystemUtilities.plainFileName()
19 class EricServerFileSystemInterface(QObject): 20 class EricServerFileSystemInterface(QObject):
20 """ 21 """
98 loop.quit() 99 loop.quit()
99 100
100 self.__serverInterface.sendJson( 101 self.__serverInterface.sendJson(
101 category=EricRequestCategory.FileSystem, 102 category=EricRequestCategory.FileSystem,
102 request="Chdir", 103 request="Chdir",
103 params={"directory": directory}, 104 params={"directory": FileSystemUtilities.plainFileName(directory)},
104 callback=callback, 105 callback=callback,
105 ) 106 )
106 107
107 loop.exec() 108 loop.exec()
108 return ok, error 109 return ok, error
153 loop.quit() 154 loop.quit()
154 155
155 self.__serverInterface.sendJson( 156 self.__serverInterface.sendJson(
156 category=EricRequestCategory.FileSystem, 157 category=EricRequestCategory.FileSystem,
157 request="Listdir", 158 request="Listdir",
158 params={"directory": directory}, 159 params={"directory": FileSystemUtilities.plainFileName(directory)},
159 callback=callback, 160 callback=callback,
160 ) 161 )
161 162
162 loop.exec() 163 loop.exec()
163 if not ok: 164 if not ok:
202 loop.quit() 203 loop.quit()
203 204
204 self.__serverInterface.sendJson( 205 self.__serverInterface.sendJson(
205 category=EricRequestCategory.FileSystem, 206 category=EricRequestCategory.FileSystem,
206 request="Stat", 207 request="Stat",
207 params={"filename": filename, "st_names": stNames}, 208 params={
209 "filename": FileSystemUtilities.plainFileName(filename),
210 "st_names": stNames,
211 },
208 callback=callback, 212 callback=callback,
209 ) 213 )
210 214
211 loop.exec() 215 loop.exec()
212 if not ok: 216 if not ok:
242 loop.quit() 246 loop.quit()
243 247
244 self.__serverInterface.sendJson( 248 self.__serverInterface.sendJson(
245 category=EricRequestCategory.FileSystem, 249 category=EricRequestCategory.FileSystem,
246 request="Exists", 250 request="Exists",
247 params={"name": name}, 251 params={"name": FileSystemUtilities.plainFileName(name)},
248 callback=callback, 252 callback=callback,
249 ) 253 )
250 254
251 loop.exec() 255 loop.exec()
252 return nameExists 256 return nameExists
293 loop.quit() 297 loop.quit()
294 298
295 self.__serverInterface.sendJson( 299 self.__serverInterface.sendJson(
296 category=EricRequestCategory.FileSystem, 300 category=EricRequestCategory.FileSystem,
297 request="Access", 301 request="Access",
298 params={"name": name, "modes": modes}, 302 params={"name": FileSystemUtilities.plainFileName(name), "modes": modes},
299 callback=callback, 303 callback=callback,
300 ) 304 )
301 305
302 loop.exec() 306 loop.exec()
303 return accessOK 307 return accessOK
333 loop.quit() 337 loop.quit()
334 338
335 self.__serverInterface.sendJson( 339 self.__serverInterface.sendJson(
336 category=EricRequestCategory.FileSystem, 340 category=EricRequestCategory.FileSystem,
337 request="Mkdir", 341 request="Mkdir",
338 params={"directory": directory}, 342 params={"directory": FileSystemUtilities.plainFileName(directory)},
339 callback=callback, 343 callback=callback,
340 ) 344 )
341 345
342 loop.exec() 346 loop.exec()
343 return ok, error 347 return ok, error
373 loop.quit() 377 loop.quit()
374 378
375 self.__serverInterface.sendJson( 379 self.__serverInterface.sendJson(
376 category=EricRequestCategory.FileSystem, 380 category=EricRequestCategory.FileSystem,
377 request="Rmdir", 381 request="Rmdir",
378 params={"directory": directory}, 382 params={"directory": FileSystemUtilities.plainFileName(directory)},
379 callback=callback, 383 callback=callback,
380 ) 384 )
381 385
382 loop.exec() 386 loop.exec()
383 return ok, error 387 return ok, error
415 loop.quit() 419 loop.quit()
416 420
417 self.__serverInterface.sendJson( 421 self.__serverInterface.sendJson(
418 category=EricRequestCategory.FileSystem, 422 category=EricRequestCategory.FileSystem,
419 request="Replace", 423 request="Replace",
420 params={"old_name": oldName, "new_name": newName}, 424 params={
425 "old_name": FileSystemUtilities.plainFileName(oldName),
426 "new_name": FileSystemUtilities.plainFileName(newName),
427 },
421 callback=callback, 428 callback=callback,
422 ) 429 )
423 430
424 loop.exec() 431 loop.exec()
425 return ok, error 432 return ok, error
455 loop.quit() 462 loop.quit()
456 463
457 self.__serverInterface.sendJson( 464 self.__serverInterface.sendJson(
458 category=EricRequestCategory.FileSystem, 465 category=EricRequestCategory.FileSystem,
459 request="Remove", 466 request="Remove",
460 params={"filename": filename}, 467 params={"filename": FileSystemUtilities.plainFileName(filename)},
461 callback=callback, 468 callback=callback,
462 ) 469 )
463 470
464 loop.exec() 471 loop.exec()
465 return ok, error 472 return ok, error
508 loop.quit() 515 loop.quit()
509 516
510 self.__serverInterface.sendJson( 517 self.__serverInterface.sendJson(
511 category=EricRequestCategory.FileSystem, 518 category=EricRequestCategory.FileSystem,
512 request="ReadFile", 519 request="ReadFile",
513 params={"filename": filename, "create": create}, 520 params={
521 "filename": FileSystemUtilities.plainFileName(filename),
522 "create": create,
523 },
514 callback=callback, 524 callback=callback,
515 ) 525 )
516 526
517 loop.exec() 527 loop.exec()
518 if not ok: 528 if not ok:
556 566
557 self.__serverInterface.sendJson( 567 self.__serverInterface.sendJson(
558 category=EricRequestCategory.FileSystem, 568 category=EricRequestCategory.FileSystem,
559 request="WriteFile", 569 request="WriteFile",
560 params={ 570 params={
561 "filename": filename, 571 "filename": FileSystemUtilities.plainFileName(filename),
562 "filedata": str(base64.b85encode(data), encoding="ascii"), 572 "filedata": str(base64.b85encode(data), encoding="ascii"),
563 "with_backup": withBackup, 573 "with_backup": withBackup,
564 }, 574 },
565 callback=callback, 575 callback=callback,
566 ) 576 )

eric ide

mercurial