src/eric7/RemoteServer/EricServerFileSystemRequestHandler.py

Fri, 02 Feb 2024 11:29:08 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 02 Feb 2024 11:29:08 +0100
branch
server
changeset 10539
4274f189ff78
child 10546
300487f5f517
permissions
-rw-r--r--

eric-ide Server
- Implemented a file dialog for remote files and started to integrate it where relevant.

10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the file system request handler of the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import stat
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import time
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from .EricRequestCategory import EricRequestCategory
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 class EricServerFileSystemRequestHandler:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 Class implementing the file system request handler of the eric-ide server.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 def __init__(self, server):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Constructor
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 @param server reference to the eric-ide server object
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @type EricServer
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 self.__server = server
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self.__requestMethodMapping = {
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 "Chdir": self.__chdir,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 "Getcwd": self.__getcwd,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 "Listdir": self.__listdir,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 "Mkdir": self.__mkdir,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 "Rmdir": self.__rmdir,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 "Replace": self.__replace,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 "Remove": self.__remove,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 }
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 def handleRequest(self, request, params, reqestUuid):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 Public method handling the received file system requests.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 @param request request name
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @param params dictionary containing the request parameters
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @param reqestUuid UUID of the associated request as sent by the eric IDE
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @type str
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 try:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 result = self.__requestMethodMapping[request](params)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__server.sendJson(
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 category=EricRequestCategory.FileSystem,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 reply=request,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 params=result,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 reqestUuid=reqestUuid,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 )
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 except KeyError:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.__server.sendJson(
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 category=EricRequestCategory.FileSystem,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 reply=request,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 params={"Error": f"Request type '{request}' is not supported."},
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 )
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 def __chdir(self, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 Private method to change the current working directory.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 @param params dictionary containing the request data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @return dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 @rtype dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 directory = params["directory"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 try:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 os.chdir(directory)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 return {"ok": True}
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 except OSError as err:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 return {
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 "ok": False,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 "error": str(err),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 }
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 def __getcwd(self, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 Private method to report the current working directory.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 @param params dictionary containing the request data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 @return dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 @rtype dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 return {"directory": os.getcwd()}
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 def __listdir(self, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 Private method to report a directory listing.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 @param params dictionary containing the request data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 @return dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 @rtype dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 directory = params["directory"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 if not directory:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 directory = os.getcwd()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 listing = []
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 for dirEntry in os.scandir(directory):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 filestat = dirEntry.stat()
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 entry = {
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 "name": dirEntry.name,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 "path": dirEntry.path,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 "is_dir": dirEntry.is_dir(),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 "is_file": dirEntry.is_file(),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 "is_link": dirEntry.is_symlink(),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 "mode": filestat.st_mode,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 "mode_str": stat.filemode(filestat.st_mode),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 "size": filestat.st_size,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 "mtime": time.strftime(
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 "%Y-%m-%d %H:%M:%S", time.localtime(filestat.st_mtime)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 ),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 }
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 listing.append(entry)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 return {
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 "directory": directory,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 "listing": listing,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 "separator": os.sep,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 }
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 def __mkdir(self, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 Private method to create a new directory.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 @param params dictionary containing the request data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 @return dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 @rtype dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 directory = params["directory"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 try:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 os.makedirs(directory)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 return {"ok": True}
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 except OSError as err:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 return {
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 "ok": False,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 "error": str(err),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 }
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 def __rmdir(self, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 Private method to delete a directory.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @param params dictionary containing the request data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 @return dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 @rtype dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 directory = params["directory"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 try:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 os.rmdir(directory)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 return {"ok": True}
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 except OSError as err:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 return {
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 "ok": False,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 "error": str(err),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 }
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 def __replace(self, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 Private method to replace (rename) a file or directory.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 @param params dictionary containing the request data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 @return dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 @rtype dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 oldName = params["old_name"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 newName = params["new_name"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 try:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 os.replace(oldName, newName)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 return {"ok": True}
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 except OSError as err:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 return {
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 "ok": False,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 "error": str(err),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 }
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 def __remove(self, params):
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 Private method to delete a directory.
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 @param params dictionary containing the request data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 @type dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 @return dictionary containing the reply data
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 @rtype dict
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 """
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 filename = params["filename"]
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 try:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 os.remove(filename)
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 return {"ok": True}
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 except OSError as err:
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 return {
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 "ok": False,
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 "error": str(err),
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 }

eric ide

mercurial