Переименовал update в flag_update. Добавил utils/text.py для вывода сообщений с цветом. Обновил вывод --help, добавил цвета, добавил флаг --version, что бы показать версию dcr

This commit is contained in:
2026-02-12 10:18:13 +08:00
parent 35dd8812ad
commit 9e842e8021
6 changed files with 63 additions and 14 deletions

View File

@@ -4,7 +4,7 @@ from .new import new
from .run import run from .run import run
from .build import build from .build import build
from .clean import clean from .clean import clean
from .update import update from .flag_update import flag_update
__all__ = [ __all__ = [
@@ -14,5 +14,5 @@ __all__ = [
"run", "run",
"build", "build",
"clean", "clean",
"update", "flag_update",
] ]

View File

@@ -3,7 +3,7 @@ import shutil
import subprocess import subprocess
def update(args: list[str] | None = None) -> int: def flag_update(args: list[str] | None = None) -> int:
if args and len(args) > 0: if args and len(args) > 0:
print("Ошибка: команда не поддежривает аргументы") print("Ошибка: команда не поддежривает аргументы")
return 1 return 1

View File

@@ -1,3 +1,6 @@
from ..utils.text import colored, BRIGHT_GREEN, BRIGHT_CYAN, BOLD
def help() -> int: def help() -> int:
print( print(
"\n".join( "\n".join(
@@ -5,29 +8,30 @@ def help() -> int:
"DCR (Dexoron Cargo Realization)", "DCR (Dexoron Cargo Realization)",
"Менеджер C-проектов, вдохновленный Cargo.", "Менеджер C-проектов, вдохновленный Cargo.",
"", "",
"ИСПОЛЬЗОВАНИЕ:", colored("ИСПОЛЬЗОВАНИЕ:", BRIGHT_GREEN + BOLD),
" dcr <команда> [опции]", colored(" dcr <команда> [опции]", BRIGHT_CYAN + BOLD),
"", "",
"КОМАНДЫ:", colored("КОМАНДЫ:", BRIGHT_GREEN + BOLD),
" new <name> Создать новый проект", " new <name> Создать новый проект",
" init Инициализировать текущую директорию как проект", " init Инициализировать текущую директорию как проект",
" build [--profile] Собрать проект (по умолчанию: --debug)", " build [--profile] Собрать проект (по умолчанию: --debug)",
" run [--profile] Собрать и запустить (по умолчанию: --debug)", " run [--profile] Собрать и запустить (по умолчанию: --debug)",
" clean Удалить директорию target", " clean Удалить директорию target",
"ФЛАГИ:", colored("ФЛАГИ:", BRIGHT_GREEN + BOLD),
" --help Показать справку по команде", " --help Показать справку по команде",
" --update Обновить dcr до актуальной версии", " --update Обновить dcr до актуальной версии",
" --version Показать версию dcr",
"", "",
"ОПЦИИ:", colored("ОПЦИИ:", BRIGHT_GREEN + BOLD),
" --debug Сборка с профилем debug", " --debug Сборка с профилем debug",
" --release Сборка с профилем release", " --release Сборка с профилем release",
"", "",
"ПРИМЕРЫ:", colored("ПРИМЕРЫ:", BRIGHT_GREEN + BOLD),
" dcr new hello", colored(" dcr new hello", BRIGHT_CYAN + BOLD),
" dcr build --release", colored(" dcr build --release", BRIGHT_CYAN + BOLD),
" dcr run --debug", colored(" dcr run --debug", BRIGHT_CYAN + BOLD),
"", "",
"ПОДСКАЗКА:", colored("ПОДСКАЗКА:", BRIGHT_GREEN + BOLD),
" Запусти 'dcr <команда> --help' для справки по команде.", " Запусти 'dcr <команда> --help' для справки по команде.",
] ]
) )

View File

@@ -40,3 +40,5 @@ flags: dict[str, list[str]] = {
"release": ["-O3", "-DNDEBUG", "-march=native"], "release": ["-O3", "-DNDEBUG", "-march=native"],
"debug": ["-O0", "-g", "-Wall", "-Wextra", "-fno-omit-frame-pointer", "-DDEBUG"], "debug": ["-O0", "-g", "-Wall", "-Wextra", "-fno-omit-frame-pointer", "-DDEBUG"],
} }
VERSION = "v0.1.1"

View File

@@ -1,3 +1,4 @@
from src.dcr.config import VERSION
import dcr.cli as cli import dcr.cli as cli
import sys import sys
@@ -21,10 +22,12 @@ def main() -> int:
cli.run(args) cli.run(args)
case "clean": case "clean":
cli.clean(args) cli.clean(args)
case "--version":
print(f"dcr {VERSION} (GNU/Linux)")
case "--help": case "--help":
cli.help() cli.help()
case "--update": case "--update":
cli.update(args) cli.flag_update(args)
case _: case _:
print("Неизвестная команда или аргумент") print("Неизвестная команда или аргумент")

40
src/dcr/utils/text.py Normal file
View File

@@ -0,0 +1,40 @@
# RESET
RESET = "\033[0m"
# TEXT STYLES
BOLD = "\033[1m"
DIM = "\033[2m"
ITALIC = "\033[3m"
UNDERLINE = "\033[4m"
BLINK = "\033[5m"
REVERSE = "\033[7m"
HIDDEN = "\033[8m"
STRIKETHROUGH = "\033[9m"
# STANDARD COLORS (Foreground)
BLACK = "\033[30m"
RED = "\033[31m"
GREEN = "\033[32m"
YELLOW = "\033[33m"
BLUE = "\033[34m"
MAGENTA = "\033[35m"
CYAN = "\033[36m"
WHITE = "\033[37m"
# BRIGHT COLORS
BRIGHT_BLACK = "\033[90m"
BRIGHT_RED = "\033[91m"
BRIGHT_GREEN = "\033[92m"
BRIGHT_YELLOW = "\033[93m"
BRIGHT_BLUE = "\033[94m"
BRIGHT_MAGENTA = "\033[95m"
BRIGHT_CYAN = "\033[96m"
BRIGHT_WHITE = "\033[97m"
def colored(msg: str, style: str) -> str:
return style + msg + RESET
def printc(msg: str, style: str) -> None:
print(style + msg + RESET)