Rename `manage` to `delete`
This commit is contained in:
parent
882972a92e
commit
f78bc64e98
21
README.org
21
README.org
|
@ -101,6 +101,27 @@ oxo shorten --help
|
||||||
│ --help Show this message and exit. │
|
│ --help Show this message and exit. │
|
||||||
╰──────────────────────────────────────────────────────────────────────────────╯
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
#+end_example
|
||||||
|
#+begin_src bash :results output replace :tangle no
|
||||||
|
oxo delete --help
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
#+begin_example
|
||||||
|
|
||||||
|
Usage: oxo delete [OPTIONS] [TOKEN_CACHE_DIR]
|
||||||
|
|
||||||
|
Delete uploaded files if tokens are found on disk at `token_cache_dir`.
|
||||||
|
|
||||||
|
╭─ Arguments ──────────────────────────────────────────────────────────────────╮
|
||||||
|
│ token_cache_dir [TOKEN_CACHE_DIR] [env var: OXO_TOKEN_CACHE_DIR] │
|
||||||
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
||||||
|
╭─ Options ────────────────────────────────────────────────────────────────────╮
|
||||||
|
│ --interactive --no-interactive If True, prompt for each token found. │
|
||||||
|
│ [default: no-interactive] │
|
||||||
|
│ --help Show this message and exit. │
|
||||||
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
#+end_example
|
#+end_example
|
||||||
|
|
||||||
** Installation
|
** Installation
|
||||||
|
|
30
oxo.py
30
oxo.py
|
@ -5,6 +5,7 @@ from dataclasses import asdict, dataclass
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
|
import inquirer
|
||||||
import typer
|
import typer
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
|
|
||||||
|
@ -177,15 +178,22 @@ def shorten(urls: t.List[str] = typer.Argument(..., min=1), base_url=BASE_URL):
|
||||||
typer.echo(post_shorten(base_url, urls))
|
typer.echo(post_shorten(base_url, urls))
|
||||||
|
|
||||||
|
|
||||||
|
def did_confirm(token: TokenData) -> bool:
|
||||||
|
confirm = inquirer.Confirm(
|
||||||
|
"delete", message=f"delete {token.oxo_url}?", default=True
|
||||||
|
)
|
||||||
|
res = inquirer.prompt([confirm])
|
||||||
|
return res["delete"]
|
||||||
|
|
||||||
|
|
||||||
@app.command()
|
@app.command()
|
||||||
def manage(
|
def delete(
|
||||||
token_cache_dir: Path = typer.Argument("", envvar="OXO_TOKEN_CACHE_DIR"),
|
token_cache_dir: Path = typer.Argument("", envvar="OXO_TOKEN_CACHE_DIR"),
|
||||||
# interactive: bool = typer.Option(
|
interactive: bool = typer.Option(
|
||||||
# False, help="If True, prompt for each token found."
|
False, help="If True, prompt for each token found."
|
||||||
# ),
|
),
|
||||||
delete: bool = typer.Option(True, help="If True, send delete requests."),
|
|
||||||
base_url=BASE_URL,
|
|
||||||
):
|
):
|
||||||
|
"""Delete uploaded files if tokens are found on disk at `token_cache_dir`."""
|
||||||
token_files = token_cache_dir.glob("*.token")
|
token_files = token_cache_dir.glob("*.token")
|
||||||
tokens = []
|
tokens = []
|
||||||
good_tokens = []
|
good_tokens = []
|
||||||
|
@ -197,14 +205,14 @@ def manage(
|
||||||
typer.secho(f"Ignoring {t}: {e}", err=True, fg=typer.colors.YELLOW)
|
typer.secho(f"Ignoring {t}: {e}", err=True, fg=typer.colors.YELLOW)
|
||||||
with httpx.Client() as client:
|
with httpx.Client() as client:
|
||||||
for token, token_file in zip(tokens, good_tokens):
|
for token, token_file in zip(tokens, good_tokens):
|
||||||
if delete:
|
try:
|
||||||
try:
|
if (interactive and did_confirm(token)) or not interactive:
|
||||||
res = client.post(
|
res = client.post(
|
||||||
token.oxo_url, data=dict(token=token.token, delete="")
|
token.oxo_url, data=dict(token=token.token, delete="")
|
||||||
)
|
)
|
||||||
res.raise_for_status()
|
res.raise_for_status()
|
||||||
typer.echo(res.text.strip())
|
typer.echo(f"Removed {token.oxo_url} {res.text.strip()}")
|
||||||
token_file.unlink()
|
token_file.unlink()
|
||||||
typer.echo(f"Removed stale token {token_file}")
|
typer.echo(f"Removed stale token {token_file}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
typer.secho(e, err=True, fg=typer.colors.RED)
|
typer.secho(e, err=True, fg=typer.colors.RED)
|
||||||
|
|
|
@ -10,6 +10,7 @@ dynamic = ["version"]
|
||||||
authors=[{name="grym", email="grym@ctrl-c.club"}]
|
authors=[{name="grym", email="grym@ctrl-c.club"}]
|
||||||
dependencies = ["typer[all]",
|
dependencies = ["typer[all]",
|
||||||
"httpx",
|
"httpx",
|
||||||
|
"inquirer",
|
||||||
'importlib-metadata; python_version<"3.8"']
|
'importlib-metadata; python_version<"3.8"']
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
|
|
Loading…
Reference in New Issue