|
106 | 106 | "outputs": [], |
107 | 107 | "source": [ |
108 | 108 | "#| 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\"]}')" |
110 | 113 | ] |
111 | 114 | }, |
112 | 115 | { |
|
403 | 406 | " plash_app.write_text(f'export PLASH_APP_NAME={name}')\n", |
404 | 407 | " \n", |
405 | 408 | " 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", |
409 | 412 | " 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)}')" |
412 | 414 | ] |
413 | 415 | }, |
414 | 416 | { |
|
525 | 527 | " return\n", |
526 | 528 | " \n", |
527 | 529 | " 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" |
530 | 531 | ] |
531 | 532 | }, |
532 | 533 | { |
|
576 | 577 | "def start(path:Path=Path('.'), name:str=None):\n", |
577 | 578 | " \"Start your deployed app\"\n", |
578 | 579 | " 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" |
581 | 581 | ] |
582 | 582 | }, |
583 | 583 | { |
|
626 | 626 | "def stop(path:Path=Path('.'), name:str=None):\n", |
627 | 627 | " \"Stop your deployed app\" \n", |
628 | 628 | " 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" |
631 | 630 | ] |
632 | 631 | }, |
633 | 632 | { |
|
695 | 694 | " text = ''\n", |
696 | 695 | " while True:\n", |
697 | 696 | " 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", |
700 | 698 | " print(r.text[len(text):], end='') # Only print updates\n", |
701 | 699 | " text = r.text\n", |
702 | 700 | " if mode == 'build' and 'Build End Time:' in r.text: break\n", |
703 | 701 | " 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" |
710 | 704 | ] |
711 | 705 | }, |
712 | 706 | { |
|
763 | 757 | " try: save_path.mkdir(exist_ok=False)\n", |
764 | 758 | " except: print(f\"ERROR: Save path ({save_path}) already exists. Please rename or delete this folder to avoid accidental overwrites.\")\n", |
765 | 759 | " 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}\") " |
770 | 764 | ] |
771 | 765 | }, |
772 | 766 | { |
|
815 | 809 | "@call_parse\n", |
816 | 810 | "def apps(verbose:bool=False):\n", |
817 | 811 | " \"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]" |
823 | 818 | ] |
824 | 819 | }, |
825 | 820 | { |
|
0 commit comments