Source code for uhugo.install

import logging
import platform
import tarfile
import zipfile

from .checks import bin_folder

log = logging.getLogger(__name__)


[docs] def install_hugo(extract_from: str, os_type: str = platform.system(), move_to: str = bin_folder()) -> str: """ Installs the ``hugo`` binary at a given path :param extract_from: The path zip/tar file downloaded :param os_type: Type of OS - ``Windows``, ``Darwin`` or ``posix``. :param move_to: Instillation location. Defaults to :py:func:`bin_folder` :return: Installation path """ if os_type == "Darwin" or os_type == "Linux": with tarfile.open(extract_from, "r:gz") as f: f.extract("hugo", move_to) elif os_type == "Windows": with zipfile.ZipFile(extract_from, "r") as f: f.extract("hugo.exe", move_to) return move_to