oxo/README.org

187 lines
12 KiB
Org Mode

* 0x0 uploader
This is a very lightweight front-end to the [[http://0x0.st][0x0 pastebin service]] for slightly easier
command line use.
** Use
#+begin_src bash :results output replace :tangle no
oxo --help
#+end_src
#+RESULTS:
#+begin_example
Usage: oxo [OPTIONS] COMMAND [ARGS]...
A command line utility for 0x0.st compliant pastebins.
To use a different 0x0 site, set `OXO_BASE_URL` in your environment, or
specify it in the relevant subcommand.
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --version Show the version and exit. │
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy │
│ it or customize the installation. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ delete Delete uploaded files if tokens are found on disk at │
│ `token_cache_dir`. │
│ files Upload one or more files. If one is provided by the 0x0 site used │
│ on a successful upload, a management token will be printed to │
│ stderr along with instructions on how to use it to delete or adjust │
│ the expiration time on the uploaded file(s). If │
│ `--token-cache-dir` is passed or `OXO_TOKEN_CACHE_DIR` is set, the │
│ management token will also be cached as a json file in that │
│ directory. The cache directory will be created on first use. │
│ repost Repost one or more urls. │
│ shorten Shorten one or more urls. │
╰──────────────────────────────────────────────────────────────────────────────╯
#+end_example
#+begin_src bash :results output replace :tangle no
oxo files --help
#+end_src
#+RESULTS:
#+begin_example
Usage: oxo files [OPTIONS] FILES...
Upload one or more files. If one is provided by the 0x0 site used on a
successful upload, a management token will be printed to stderr along with
instructions on how to use it to delete or adjust the expiration time on the
uploaded file(s). If `--token-cache-dir` is passed or `OXO_TOKEN_CACHE_DIR`
is set, the management token will also be cached as a json file in that
directory. The cache directory will be created on first use.
╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│ * files FILES... [default: None] [required] │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --use-long-name --no-use-long-name If true, create a harder │
│ to guess name. │
│ [default: │
│ no-use-long-name] │
│ --base-url TEXT [env var: OXO_BASE_URL] │
│ [default: │
│ https://0x0.st] │
│ --expires INTEGER Expiration time, in │
│ hours or epoch │
│ milliseconds │
│ [default: None] │
│ --token-cache-dir TEXT [env var: │
│ OXO_TOKEN_CACHE_DIR] │
│ [default: None] │
│ --help Show this message and │
│ exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
#+end_example
#+begin_src bash :results output replace :tangle no
oxo repost --help
#+end_src
#+RESULTS:
#+begin_example
Usage: oxo repost [OPTIONS] URLS...
Repost one or more urls.
╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│ * urls URLS... [default: None] [required] │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --use-long-name --no-use-long-name If true, create a harder │
│ to guess name. │
│ [default: │
│ no-use-long-name] │
│ --base-url TEXT [env var: OXO_BASE_URL] │
│ [default: │
│ https://0x0.st] │
│ --expires INTEGER Expiration time, in │
│ hours or epoch │
│ milliseconds │
│ [default: None] │
│ --token-cache-dir TEXT [env var: │
│ OXO_TOKEN_CACHE_DIR] │
│ [default: None] │
│ --help Show this message and │
│ exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
#+end_example
#+begin_src bash :results output replace :tangle no
oxo shorten --help
#+end_src
#+RESULTS:
#+begin_example
Usage: oxo shorten [OPTIONS] URLS...
Shorten one or more urls.
╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│ * urls URLS... [default: None] [required] │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --base-url TEXT [env var: OXO_BASE_URL] │
│ [default: https://0x0.st] │
│ --expires INTEGER Expiration time, in hours or epoch │
│ milliseconds │
│ [default: None] │
│ --token-cache-dir TEXT [env var: OXO_TOKEN_CACHE_DIR] │
│ [default: None] │
│ --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
** Installation
*** pipx
[[https://pypa.github.io/pipx/][pipx]] automates the creation of isolated runtimes for python CLI utilities like
=oxo=. Once =pipx= is installed, install =oxo= like so, and it'll be on your
=$PATH=
#+begin_src bash
pipx install git+https://tildegit.org/grym/oxo@master # or @tag-of-your-choice
#+end_src
*** pip + venv
If you'd prefer to create or manage your own isolated runtime for =oxo=, create
a venv and install =oxo= into it:
#+begin_src bash
python3 -m venv oxovenv #or wherever you want the venv to go
oxovenv/bin/pip install git+https://tildegit.org/grym/oxo@master # or @tag-of-your-choice
ln -s oxovenv/bin/oxo ${HOME}/.local/bin # optionally add to here, or anywhere else on your $PATH
#+end_src
*** development
If you'd like to set up a development install to edit oxo on your own (to
prepare a PR, for example):
#+begin_src bash
git clone https://tildegit.org/grym/oxo
cd oxo
make install
#+end_src