Skip to content

Commit 2cd0f08

Browse files
authored
Merge pull request #415 from GaneshPatil7517/refactor/build-endpoint-deduplication
refactor: simplify build() endpoint by removing Windows/Docker duplication (fixes #363)
2 parents c9d4a68 + edf0c3a commit 2cd0f08

1 file changed

Lines changed: 25 additions & 69 deletions

File tree

fri/server/main.py

Lines changed: 25 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -215,76 +215,32 @@ def build(dir):
215215

216216

217217
if not os.path.exists(dir_path):
218-
if(platform.uname()[0]=='Windows'):
219-
if(out_dir == None or out_dir == ""):
220-
if(docker == 'true'):
221-
try:
222-
output_bytes = subprocess.check_output(["makedocker", makestudy_dir], cwd=concore_path, shell=True)
223-
output_str = output_bytes.decode("utf-8")
224-
proc = 0
225-
except subprocess.CalledProcessError as e:
226-
output_str = f"Docker study creation failed with return code {e.returncode} (check duplicate directory)"
227-
proc = 1
228-
else:
229-
try:
230-
output_bytes = subprocess.check_output(["makestudy", makestudy_dir], cwd=concore_path, shell=True)
231-
output_str = output_bytes.decode("utf-8")
232-
proc = 0
233-
except subprocess.CalledProcessError as e:
234-
output_str = f"Study creation failed with return code {e.returncode} (check duplicate directory)"
235-
proc = 1
236-
else:
237-
if(docker == 'true'):
238-
try:
239-
output_bytes = subprocess.check_output(["makedocker", makestudy_dir, out_dir], cwd=concore_path, shell=True)
240-
output_str = output_bytes.decode("utf-8")
241-
proc = 0
242-
except subprocess.CalledProcessError as e:
243-
output_str = f"Docker study creation failed with return code {e.returncode} (check duplicate directory)"
244-
proc = 1
245-
else:
246-
try:
247-
output_bytes = subprocess.check_output(["makestudy", makestudy_dir, out_dir], cwd=concore_path, shell=True)
248-
output_str = output_bytes.decode("utf-8")
249-
proc = 0
250-
except subprocess.CalledProcessError as e:
251-
output_str = f"Study creation failed with return code {e.returncode} (check duplicate directory)"
252-
proc = 1
218+
# Determine command name and error label based on docker flag
219+
if docker == 'true':
220+
cmd_name = "makedocker"
221+
error_label = "Docker study"
253222
else:
254-
if(out_dir == None or out_dir == ""):
255-
if(docker == 'true'):
256-
try:
257-
output_bytes = subprocess.check_output([r"./makedocker", makestudy_dir], cwd=concore_path)
258-
output_str = output_bytes.decode("utf-8")
259-
proc = 0
260-
except subprocess.CalledProcessError as e:
261-
output_str = f"Docker study creation failed with return code {e.returncode} (check duplicate directory)"
262-
proc = 1
263-
else:
264-
try:
265-
output_bytes = subprocess.check_output([r"./makestudy", makestudy_dir], cwd=concore_path)
266-
output_str = output_bytes.decode("utf-8")
267-
proc = 0
268-
except subprocess.CalledProcessError as e:
269-
output_str = f"Study creation failed with return code {e.returncode} (check duplicate directory)"
270-
proc = 1
271-
else:
272-
if(docker == 'true'):
273-
try:
274-
output_bytes = subprocess.check_output([r"./makedocker", makestudy_dir, out_dir], cwd=concore_path)
275-
output_str = output_bytes.decode("utf-8")
276-
proc = 0
277-
except subprocess.CalledProcessError as e:
278-
output_str = f"Docker study creation failed with return code {e.returncode} (check duplicate directory)"
279-
proc = 1
280-
else:
281-
try:
282-
output_bytes = subprocess.check_output([r"./makestudy", makestudy_dir, out_dir], cwd=concore_path)
283-
output_str = output_bytes.decode("utf-8")
284-
proc = 0
285-
except subprocess.CalledProcessError as e:
286-
output_str = f"Study creation failed with return code {e.returncode} (check duplicate directory)"
287-
proc = 1
223+
cmd_name = "makestudy"
224+
error_label = "Study"
225+
226+
# Build command list
227+
cmd = [cmd_name, makestudy_dir]
228+
if out_dir != None and out_dir != "":
229+
cmd.append(out_dir)
230+
231+
# OS-specific adjustments
232+
is_windows = platform.uname()[0] == 'Windows'
233+
if not is_windows:
234+
cmd[0] = f"./{cmd[0]}"
235+
236+
try:
237+
output_bytes = subprocess.check_output(cmd, cwd=concore_path, shell=is_windows)
238+
output_str = output_bytes.decode("utf-8")
239+
proc = 0
240+
except subprocess.CalledProcessError as e:
241+
output_str = f"{error_label} creation failed with return code {e.returncode} (check duplicate directory)"
242+
proc = 1
243+
288244
if(proc == 0):
289245
resp = jsonify({'message': 'Directory successfully created'})
290246
resp.status_code = 201

0 commit comments

Comments
 (0)