%PDF- %PDF-
| Direktori : /lib/python3/dist-packages/nala/ |
| Current File : //lib/python3/dist-packages/nala/constants.py |
# __
# ____ _____ | | _____
# / \\__ \ | | \__ \
# | | \/ __ \| |__/ __ \_
# |___| (____ /____(____ /
# \/ \/ \/
#
# Copyright (C) 2021, 2022 Blake Lee
#
# This file is part of nala
#
# nala is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# nala is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with nala. If not, see <https://www.gnu.org/licenses/>.
"""Module for file constants."""
from __future__ import annotations
import re
from enum import IntEnum
from pathlib import Path
from signal import Handlers # pylint: disable=no-name-in-module #Codacy
from types import FrameType
from typing import Any, Callable, Optional, Union
import apt_pkg
from nala import ROOT, USR, _, color
# File Constants
GPL3_LICENSE = Path(f"{USR}/share/common-licenses/GPL-3")
"""/usr/share/common-licenses/GPL-3"""
NALA_SOURCES = Path(f"{ROOT}/etc/apt/sources.list.d/nala-sources.list")
"""/etc/apt/sources.list.d/nala-sources.list"""
NALA_DIR = Path(f"{ROOT}/var/lib/nala")
"""/var/lib/nala"""
NALA_LOGDIR = Path(f"{ROOT}/var/log/nala")
"""/var/log/nala"""
NALA_DEBUGLOG = NALA_LOGDIR / "nala-debug.log"
"""/var/log/nala/nala.debug.log"""
DPKG_LOG = NALA_LOGDIR / "dpkg-debug.log"
"""/var/log/nala/dpkg-debug.log"""
DPKG_STATUS_LOG = NALA_LOGDIR / "dpkg-status.log"
"""/var/log/nala/dpkg-status.log"""
NALA_TERM_LOG = Path(f"{ROOT}/var/log/nala/term.log")
"""/var/log/nala/term.log"""
NALA_HISTORY = Path(f"{ROOT}/var/lib/nala/history.json")
"""/var/lib/nala/history.json"""
PACSTALL_METADATA = Path(f"{ROOT}/var/log/pacstall/metadata")
"""/var/log/pacstall/metadata"""
REBOOT_REQUIRED = Path(f"{ROOT}/var/run/reboot-required")
"""/var/run/reboot-required"""
REBOOT_PKGS = Path(f"{ROOT}/var/run/reboot-required.pkgs")
"""'/var/run/reboot-required.pkgs'"""
NEED_RESTART = Path(f"{ROOT}/var/run/needrestart")
"""/var/run/needrestart"""
NALA_LOCK_FILE = Path(f"{ROOT}/var/lock/nala.lock")
"""/var/lock/nala.lock"""
# Apt Directories
ARCHIVE_DIR = Path(apt_pkg.config.find_dir("Dir::Cache::Archives"))
"""/var/cache/apt/archives/"""
PARTIAL_DIR = ARCHIVE_DIR / "partial"
"""/var/cache/apt/archives/partial"""
LISTS_DIR = Path(apt_pkg.config.find_dir("Dir::State::Lists"))
"""/var/lib/apt/lists/"""
LISTS_PARTIAL_DIR = LISTS_DIR / "partial"
"""/var/lib/apt/lists/partial"""
PKGCACHE = Path(apt_pkg.config.find_dir("Dir::Cache::pkgcache"))
"""/var/cache/apt/pkgcache.bin"""
SRCPKGCACHE = Path(apt_pkg.config.find_dir("Dir::Cache::srcpkgcache"))
"""/var/cache/apt/srcpkgcache.bin"""
SOURCELIST = Path(apt_pkg.config.find_file("Dir::Etc::sourcelist"))
"""/etc/apt/sources.list"""
SOURCEPARTS = Path(apt_pkg.config.find_dir("Dir::Etc::sourceparts"))
"""/etc/apt/sources.list.d"""
DPKG_STATE = Path(apt_pkg.config.find_dir("Dir::State::status"))
"""/var/lib/dpkg/status"""
HANDLER = Union[Callable[[int, Optional[FrameType]], Any], int, Handlers, None]
ERROR_PREFIX = color(_("Error:"), "RED")
WARNING_PREFIX = color(_("Warning:"), "YELLOW")
NOTICE_PREFIX = color(_("Notice:"), "YELLOW")
# Compiled Regex
ERRNO_PATTERN = re.compile(r"\[.*\]")
class SelectedState(IntEnum):
"""Selected state constants for pkgs."""
UNKNOWN = 0
INSTALL = 1
HOLD = 2
DEINSTALL = 3
PURGE = 4
class CurrentState(IntEnum):
"""Current state constants for pkgs."""
NOT_INSTALLED = 0
UNPACKED = 1
HALF_CONFIGURED = 2
HALF_INSTALLED = 4
CONFIG_FILES = 5
INSTALLED = 6
TRIGGERS_AWAITED = 7
TRIGGERS_PENDING = 8
class InstState(IntEnum):
"""Installed state constants for pkgs."""
OK = 0
REINSTREQ = 1
HOLD_INST = 2
HOLD_REINSTREQ = 3
# dpkg constants
CONF_MESSAGE = (
b" What would you like to do about it ? Your options are:\r\n"
b" Y or I : install the package maintainer's version\r\n"
b" N or O : keep your currently-installed version\r\n"
b" D : show the differences between the versions\r\n"
b" Z : start a shell to examine the situation\r\n"
)
CONF_ANSWERS = (
b"y",
b"Y",
b"i",
b"I",
b"n",
b"N",
b"o",
b"O",
)
NOTICES = (
b"The currently running kernel version is not the expected kernel version",
b"Please remove.",
b"NOTICE:",
b"Warning:",
)
SPAM = (
# Stuff that's pretty useless
"(Reading database", #'(Reading database ... 247588 files and directories currently installed.)'
"files and directories currently installed.)",
"Selecting previously unselected package", # 'Selecting previously unselected package chafa.'
"Preparing to unpack", # 'Preparing to unpack .../2-chafa_1.8.0-1_amd64.deb ...'
"Extracting templates from packages:",
"Fetched",
)
DPKG_STATUS = (
b"Scanning processes...",
b"Scanning candidates...",
b"Scanning linux images...",
b"Extracting templates from packages",
b"Reading changelogs...",
b"Retrieving bug reports...",
b"Parsing Found/Fixed information...",
b"[Working]",
b"[Connecting",
b"[Waiting for headers]",
b"[Connected to",
)
DPKG_ERRORS = (
b"dpkg:",
b"failed to allocate memory for new entry",
b"error processing package",
b"error processing archive",
b"Errors were encountered while processing",
b"Processing was halted because there were too many errors",
)
CAT = r"""
|\---/|
| ,_, |
\_`_/-..----.
___/ ` ' ,""+ \ sk
(__...' __\ |`.___.';
(_,...'(_,.`__)/'.....+
"""