Files
osxphotos/osxphotos/cli/version.py
2022-04-23 15:44:01 -07:00

39 lines
1.2 KiB
Python

"""about command for osxphotos CLI"""
import click
import os
from osxphotos._constants import OSXPHOTOS_URL
from osxphotos._version import __version__
from .common import get_latest_version
import packaging
@click.command(name="version")
@click.pass_obj
@click.pass_context
@click.option(
"--run",
metavar="COMMAND",
required=False,
type=str,
help="Run COMMAND if there is a new version of osxphotos available.",
)
def version(ctx, cli_obj, run):
"""Check for new version of osxphotos."""
latest_version, err = get_latest_version()
if latest_version and packaging.version.parse(
latest_version
) > packaging.version.parse(__version__):
click.echo(
f"A new version of osxphotos is available: {latest_version} (you have {__version__})\n"
"Run `pipx upgrade osxphotos` to upgrade (assuming you installed osxphotos with pipx).\n"
f"See {OSXPHOTOS_URL} for more information."
)
if run:
click.echo(f"Running command: '{run}'")
os.system(run)
elif not latest_version:
click.echo(f"Unable to check for new version of osxphotos: {err}")
else:
click.echo(f"You have the latest version of osxphotos: {__version__}")