|
4 | 4 | from pathlib import Path |
5 | 5 |
|
6 | 6 | import typer |
| 7 | +from pythonanywhere_core.exceptions import MissingCNAMEException |
7 | 8 | from pythonanywhere_core.webapp import Webapp |
8 | 9 | from snakesay import snakesay |
9 | 10 | from tabulate import tabulate |
10 | 11 |
|
11 | 12 | from pythonanywhere.project import Project |
12 | | -from pythonanywhere.utils import ensure_domain |
| 13 | +from pythonanywhere.utils import ensure_domain, format_log_deletion_message |
13 | 14 |
|
14 | 15 | app = typer.Typer(no_args_is_help=True) |
15 | 16 |
|
@@ -73,6 +74,7 @@ def create( |
73 | 74 | """Create a new webapp with virtualenv and project setup""" |
74 | 75 | domain = ensure_domain(domain_name) |
75 | 76 | project = Project(domain, python_version) |
| 77 | + typer.echo(snakesay("Running sanity checks")) |
76 | 78 | project.sanity_checks(nuke=nuke) |
77 | 79 | project.virtualenv.create(nuke=nuke) |
78 | 80 | project.create_webapp(nuke=nuke) |
@@ -102,7 +104,10 @@ def reload( |
102 | 104 | domain_name = ensure_domain(domain_name) |
103 | 105 | webapp = Webapp(domain_name) |
104 | 106 | typer.echo(snakesay(f"Reloading {domain_name} via API")) |
105 | | - webapp.reload() |
| 107 | + try: |
| 108 | + webapp.reload() |
| 109 | + except MissingCNAMEException as e: |
| 110 | + typer.echo(snakesay(str(e))) |
106 | 111 | typer.echo(snakesay(f"{domain_name} has been reloaded")) |
107 | 112 |
|
108 | 113 |
|
@@ -146,7 +151,10 @@ def install_ssl( |
146 | 151 | webapp = Webapp(domain_name) |
147 | 152 | webapp.set_ssl(certificate, private_key) |
148 | 153 | if not suppress_reload: |
149 | | - webapp.reload() |
| 154 | + try: |
| 155 | + webapp.reload() |
| 156 | + except MissingCNAMEException as e: |
| 157 | + typer.echo(snakesay(str(e))) |
150 | 158 |
|
151 | 159 | ssl_details = webapp.get_ssl_info() |
152 | 160 | typer.echo( |
@@ -197,20 +205,25 @@ def delete_logs( |
197 | 205 | ), |
198 | 206 | ): |
199 | 207 | """Delete webapp log files (access, error, server logs)""" |
200 | | - webapp = Webapp(ensure_domain(domain_name)) |
| 208 | + domain = ensure_domain(domain_name) |
| 209 | + webapp = Webapp(domain) |
201 | 210 | log_types = ["access", "error", "server"] |
202 | 211 | logs = webapp.get_log_info() |
203 | 212 | if log_type == "all" and log_index == "all": |
204 | 213 | for key in log_types: |
205 | 214 | for log in logs[key]: |
| 215 | + typer.echo(snakesay(format_log_deletion_message(domain, key, log))) |
206 | 216 | webapp.delete_log(key, log) |
207 | 217 | elif log_type == "all": |
208 | 218 | for key in log_types: |
| 219 | + typer.echo(snakesay(format_log_deletion_message(domain, key, int(log_index)))) |
209 | 220 | webapp.delete_log(key, int(log_index)) |
210 | 221 | elif log_index == "all": |
211 | 222 | for i in logs[log_type]: |
| 223 | + typer.echo(snakesay(format_log_deletion_message(domain, log_type.value, i))) |
212 | 224 | webapp.delete_log(log_type, int(i)) |
213 | 225 | else: |
| 226 | + typer.echo(snakesay(format_log_deletion_message(domain, log_type.value, int(log_index)))) |
214 | 227 | webapp.delete_log(log_type, int(log_index)) |
215 | 228 | typer.echo(snakesay("All done!")) |
216 | 229 |
|
|
0 commit comments