Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ classifiers = [

dependencies = [
"click",
"click-repl",
"croniter",
"cron-descriptor",
"rich",
Expand Down
2 changes: 1 addition & 1 deletion src/hckr/__about__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2024-present Ashish Patel <ashishpatel0720@gmail.com>
#
# SPDX-License-Identifier: MIT
__version__ = "0.2.4.dev2"
__version__ = "0.2.4"
8 changes: 7 additions & 1 deletion src/hckr/cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
import logging

import click
from click_repl import register_repl # type: ignore

from hckr.cli.crypto.fernet import fernet
from hckr.cli.data import data
from hckr.cli.info import info
from hckr.utils.CliUtils import check_update
from hckr.utils.MessageUtils import warning
from ..__about__ import __version__
from ..cli.cron import cron
Expand Down Expand Up @@ -68,11 +70,15 @@ def cli(
click.secho("hckr ", fg="magenta", bold=True, nl=False)
click.secho(f"v{__version__} ", fg="blue", bold=True, nl=False)
click.secho(
f"https://github.com/pateash/hckr\n", fg="green", bold=True, nl=True
f"https://github.com/pateash/hckr\n", fg="green", bold=True, nl=False
Comment thread
pateash marked this conversation as resolved.
)
check_update()
cli(["-h"])
else:
Comment thread
pateash marked this conversation as resolved.
check_update()


register_repl(cli)
cli.add_command(info)
cli.add_command(cron)
cli.add_command(hash)
Expand Down
46 changes: 46 additions & 0 deletions src/hckr/utils/CliUtils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import logging

import requests
import rich
from packaging import version
from rich.panel import Panel

from .MessageUtils import colored, success
from ..__about__ import __version__


def check_latest_version():
current_version = __version__
try:
# latest stable version
response = requests.get("https://pypi.org/pypi/hckr/json")
latest_version = response.json()["info"]["version"]
return is_new_version_available(current_version, latest_version), latest_version
except requests.RequestException:
return False, current_version
Comment thread
pateash marked this conversation as resolved.


def is_new_version_available(current_version, latest_version):
current_ver = version.parse(current_version)
latest_ver = version.parse(latest_version)

logging.info(f"current : {current_version}, latest: {latest_version}")

# Check if the latest version is greater than the current version
return latest_ver > current_ver
Comment thread
pateash marked this conversation as resolved.


def check_update():
needs_update, latest_version = check_latest_version()
logging.info(needs_update, latest_version)
if needs_update:
success(
f"Info: Update available {colored(__version__, 'magenta')} -> {colored(latest_version, 'green')}"
)
rich.print(
Panel(
"pip install --upgrade hckr",
expand=False,
title="Run to upgrade",
)
)
Comment thread
pateash marked this conversation as resolved.