Source code for uhugo.checks

import json
import logging
import platform
from pathlib import Path

import requests
from rich import print

log = logging.getLogger(__name__)

if platform.system() == "Windows":
    from .terminal_commands.windows import *  # noqa
elif platform.system() == "Linux" or platform.system() == "Darwin":
    from .terminal_commands.posix import *  # noqa
else:
    raise OSError("Unknown OS")


[docs] def bin_folder() -> str: """ Gives the path of the user bin folder if exists else a bin folder is created in the ``<user home>/bin`` :return: ``bin`` location """ bin_path = Path(Path.home(), "bin") if not bin_path.is_dir(): log.debug(f"bin directory does not exists. Creating one now. New path: {bin_path!r}") bin_path.mkdir() return str(bin_path)
[docs] def get_latest_version_api(override_version: str = None) -> str: """ Get the latest Hugo version :param override_version: An override version of Hugo :return: version number """ if override_version is not None: hugo_response = requests.get(f"https://api.github.com/repos/gohugoio/hugo/releases/tags/v{override_version}") if hugo_response.ok: return override_version else: log.debug("Override version request error occurred", hugo_response.content) print( f"\n[red bold]Hugo v{override_version} does not exists. See https://github.com/gohugoio/hugo/releases" " for more information." ) exit(1) hugo_response = requests.get("https://api.github.com/repos/gohugoio/hugo/releases/latest") hugo_response = json.loads(hugo_response.content.decode("utf-8"))["tag_name"][1:] return hugo_response