Skip to content

Commit b6735ad

Browse files
committed
fix renames and better handle error msgs
1 parent fba287d commit b6735ad

2 files changed

Lines changed: 47 additions & 57 deletions

File tree

nbs/00_cli.ipynb

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,10 @@
106106
"outputs": [],
107107
"source": [
108108
"#| export\n",
109-
"def _mk_auth_req(url:str, method:str='get', **kwargs): return getattr(_get_client(PLASH_CONFIG_HOME), method)(url, **kwargs)"
109+
"def _mk_auth_req(url:str, method:str='get', **kwargs):\n",
110+
" r = getattr(_get_client(PLASH_CONFIG_HOME), method)(url, **kwargs)\n",
111+
" if r.status_code == 200: return r\n",
112+
" else: print(f'Failure: {r.headers[\"X-Plash-Error\"]}')"
110113
]
111114
},
112115
{
@@ -403,12 +406,11 @@
403406
" plash_app.write_text(f'export PLASH_APP_NAME={name}')\n",
404407
" \n",
405408
" tarz, _ = create_tar_archive(path, force_data)\n",
406-
" resp = _mk_auth_req(_endpoint(rt=\"/upload\"), \"post\", files={'file': tarz}, timeout=300.0, \n",
407-
" data={'name': name, 'force_data': force_data})\n",
408-
" if resp.status_code == 200:\n",
409+
" r = _mk_auth_req(_endpoint(rt=\"/upload\"), \"post\", files={'file': tarz}, timeout=300.0, \n",
410+
" data={'name': name, 'force_data': force_data})\n",
411+
" if r:\n",
409412
" print('✅ Upload complete! Your app is currently being built.')\n",
410-
" print(f'It will be live at {name if \".\" in name else _endpoint(sub=name)}')\n",
411-
" else: print(f'Failure: {resp.status_code}\\n{resp.text}')"
413+
" print(f'It will be live at {name if \".\" in name else _endpoint(sub=name)}')"
412414
]
413415
},
414416
{
@@ -525,8 +527,7 @@
525527
" return\n",
526528
" \n",
527529
" print(f\"Deleting app '{name}'...\")\n",
528-
" r = _mk_auth_req(_endpoint(rt=f\"/delete?name={name}\"), \"delete\")\n",
529-
" return r.text"
530+
" if r := _mk_auth_req(_endpoint(rt=f\"/delete?name={name}\"), \"delete\"): return r.text"
530531
]
531532
},
532533
{
@@ -576,8 +577,7 @@
576577
"def start(path:Path=Path('.'), name:str=None):\n",
577578
" \"Start your deployed app\"\n",
578579
" if not name: name = _get_app_name(path)\n",
579-
" r = _mk_auth_req(_endpoint(rt=f\"/start?name={name}\"))\n",
580-
" return r.text"
580+
" if r := _mk_auth_req(_endpoint(rt=f\"/start?name={name}\")): return r.text"
581581
]
582582
},
583583
{
@@ -626,8 +626,7 @@
626626
"def stop(path:Path=Path('.'), name:str=None):\n",
627627
" \"Stop your deployed app\" \n",
628628
" if not name: name = _get_app_name(path)\n",
629-
" r = _mk_auth_req(_endpoint(rt=f\"/stop?name={name}\"))\n",
630-
" return r.text"
629+
" if r := _mk_auth_req(_endpoint(rt=f\"/stop?name={name}\")): return r.text"
631630
]
632631
},
633632
{
@@ -695,18 +694,13 @@
695694
" text = ''\n",
696695
" while True:\n",
697696
" try:\n",
698-
" r = _mk_auth_req(_endpoint(rt=f\"/logs?name={name}&mode={mode}\"))\n",
699-
" if r.status_code == 200:\n",
697+
" if r := _mk_auth_req(_endpoint(rt=f\"/logs?name={name}&mode={mode}\")):\n",
700698
" print(r.text[len(text):], end='') # Only print updates\n",
701699
" text = r.text\n",
702700
" if mode == 'build' and 'Build End Time:' in r.text: break\n",
703701
" sleep(1)\n",
704-
" else:\n",
705-
" print(f\"Error: {r.status_code}\")\n",
706-
" except KeyboardInterrupt:\n",
707-
" return \"\\nExiting\"\n",
708-
" r = _mk_auth_req(endpoint(rt=f\"/logs?name={name}&mode={mode}\"))\n",
709-
" return r.text"
702+
" except KeyboardInterrupt: return \"\\nExiting\"\n",
703+
" if r := _mk_auth_req(_endpoint(rt=f\"/logs?name={name}&mode={mode}\")): return r.text"
710704
]
711705
},
712706
{
@@ -763,10 +757,10 @@
763757
" try: save_path.mkdir(exist_ok=False)\n",
764758
" except: print(f\"ERROR: Save path ({save_path}) already exists. Please rename or delete this folder to avoid accidental overwrites.\")\n",
765759
" else:\n",
766-
" response = mk_auth_req(_endpoint(rt=f'/download?name={name}')).raise_for_status()\n",
767-
" file_bytes = io.BytesIO(response.content)\n",
768-
" with tarfile.open(fileobj=file_bytes, mode=\"r:gz\") as tar: tar.extractall(path=save_path)\n",
769-
" print(f\"Downloaded your app to: {save_path}\")"
760+
" if r := _mk_auth_req(_endpoint(rt=f'/download?name={name}')):\n",
761+
" file_bytes = io.BytesIO(r.content)\n",
762+
" with tarfile.open(fileobj=file_bytes, mode=\"r:gz\") as tar: tar.extractall(path=save_path)\n",
763+
" print(f\"Downloaded your app to: {save_path}\") "
770764
]
771765
},
772766
{
@@ -815,11 +809,12 @@
815809
"@call_parse\n",
816810
"def apps(verbose:bool=False):\n",
817811
" \"List your deployed apps (verbose shows status table: 1=running, 0=stopped)\"\n",
818-
" r = _mk_auth_req(_endpoint(rt=\"/user_apps\")).raise_for_status()\n",
819-
" apps = r.json()\n",
820-
" if not apps: return \"You don't have any deployed Plash apps.\"\n",
821-
" if verbose: [print(f\"{a['running']} {a['name']}\") for a in apps]\n",
822-
" else: [print(a['name']) for a in apps]"
812+
" r = _mk_auth_req(_endpoint(rt=\"/user_apps\"))\n",
813+
" if r:\n",
814+
" apps = r.json()\n",
815+
" if not apps: return \"You don't have any deployed Plash apps.\"\n",
816+
" if verbose: [print(f\"{a['running']} {a['name']}\") for a in apps]\n",
817+
" else: [print(a['name']) for a in apps]"
823818
]
824819
},
825820
{

plash_cli/cli.py

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ def _get_client(cookie_file):
3232
return client
3333

3434
# %% ../nbs/00_cli.ipynb 8
35-
def _mk_auth_req(url:str, method:str='get', **kwargs): return getattr(_get_client(PLASH_CONFIG_HOME), method)(url, **kwargs)
35+
def _mk_auth_req(url:str, method:str='get', **kwargs):
36+
r = getattr(_get_client(PLASH_CONFIG_HOME), method)(url, **kwargs)
37+
if r.status_code == 200: return r
38+
else: print(f'Failure: {r.headers["X-Plash-Error"]}')
3639

3740
# %% ../nbs/00_cli.ipynb 9
3841
def _get_app_name(path:Path):
@@ -164,12 +167,11 @@ def deploy(
164167
plash_app.write_text(f'export PLASH_APP_NAME={name}')
165168

166169
tarz, _ = create_tar_archive(path, force_data)
167-
resp = _mk_auth_req(_endpoint(rt="/upload"), "post", files={'file': tarz}, timeout=300.0,
168-
data={'name': name, 'force_data': force_data})
169-
if resp.status_code == 200:
170+
r = _mk_auth_req(_endpoint(rt="/upload"), "post", files={'file': tarz}, timeout=300.0,
171+
data={'name': name, 'force_data': force_data})
172+
if r:
170173
print('✅ Upload complete! Your app is currently being built.')
171174
print(f'It will be live at {name if "." in name else _endpoint(sub=name)}')
172-
else: print(f'Failure: {resp.status_code}\n{resp.text}')
173175

174176
# %% ../nbs/00_cli.ipynb 27
175177
@call_parse
@@ -198,24 +200,21 @@ def delete(
198200
return
199201

200202
print(f"Deleting app '{name}'...")
201-
r = _mk_auth_req(_endpoint(rt=f"/delete?name={name}"), "delete")
202-
return r.text
203+
if r := _mk_auth_req(_endpoint(rt=f"/delete?name={name}"), "delete"): return r.text
203204

204205
# %% ../nbs/00_cli.ipynb 33
205206
@call_parse
206207
def start(path:Path=Path('.'), name:str=None):
207208
"Start your deployed app"
208209
if not name: name = _get_app_name(path)
209-
r = _mk_auth_req(_endpoint(rt=f"/start?name={name}"))
210-
return r.text
210+
if r := _mk_auth_req(_endpoint(rt=f"/start?name={name}")): return r.text
211211

212212
# %% ../nbs/00_cli.ipynb 36
213213
@call_parse
214214
def stop(path:Path=Path('.'), name:str=None):
215215
"Stop your deployed app"
216216
if not name: name = _get_app_name(path)
217-
r = _mk_auth_req(_endpoint(rt=f"/stop?name={name}"))
218-
return r.text
217+
if r := _mk_auth_req(_endpoint(rt=f"/stop?name={name}")): return r.text
219218

220219
# %% ../nbs/00_cli.ipynb 39
221220
log_modes = str_enum('log_modes', 'build', 'app')
@@ -233,18 +232,13 @@ def logs(
233232
text = ''
234233
while True:
235234
try:
236-
r = _mk_auth_req(_endpoint(rt=f"/logs?name={name}&mode={mode}"))
237-
if r.status_code == 200:
235+
if r := _mk_auth_req(_endpoint(rt=f"/logs?name={name}&mode={mode}")):
238236
print(r.text[len(text):], end='') # Only print updates
239237
text = r.text
240238
if mode == 'build' and 'Build End Time:' in r.text: break
241239
sleep(1)
242-
else:
243-
print(f"Error: {r.status_code}")
244-
except KeyboardInterrupt:
245-
return "\nExiting"
246-
r = _mk_auth_req(endpoint(rt=f"/logs?name={name}&mode={mode}"))
247-
return r.text
240+
except KeyboardInterrupt: return "\nExiting"
241+
if r := _mk_auth_req(_endpoint(rt=f"/logs?name={name}&mode={mode}")): return r.text
248242

249243
# %% ../nbs/00_cli.ipynb 43
250244
@call_parse
@@ -257,17 +251,18 @@ def download(
257251
try: save_path.mkdir(exist_ok=False)
258252
except: print(f"ERROR: Save path ({save_path}) already exists. Please rename or delete this folder to avoid accidental overwrites.")
259253
else:
260-
response = mk_auth_req(_endpoint(rt=f'/download?name={name}')).raise_for_status()
261-
file_bytes = io.BytesIO(response.content)
262-
with tarfile.open(fileobj=file_bytes, mode="r:gz") as tar: tar.extractall(path=save_path)
263-
print(f"Downloaded your app to: {save_path}")
254+
if r := _mk_auth_req(_endpoint(rt=f'/download?name={name}')):
255+
file_bytes = io.BytesIO(r.content)
256+
with tarfile.open(fileobj=file_bytes, mode="r:gz") as tar: tar.extractall(path=save_path)
257+
print(f"Downloaded your app to: {save_path}")
264258

265259
# %% ../nbs/00_cli.ipynb 46
266260
@call_parse
267261
def apps(verbose:bool=False):
268262
"List your deployed apps (verbose shows status table: 1=running, 0=stopped)"
269-
r = _mk_auth_req(_endpoint(rt="/user_apps")).raise_for_status()
270-
apps = r.json()
271-
if not apps: return "You don't have any deployed Plash apps."
272-
if verbose: [print(f"{a['running']} {a['name']}") for a in apps]
273-
else: [print(a['name']) for a in apps]
263+
r = _mk_auth_req(_endpoint(rt="/user_apps"))
264+
if r:
265+
apps = r.json()
266+
if not apps: return "You don't have any deployed Plash apps."
267+
if verbose: [print(f"{a['running']} {a['name']}") for a in apps]
268+
else: [print(a['name']) for a in apps]

0 commit comments

Comments
 (0)