You've already forked onec_codetemplate_parser
mirror of
https://github.com/240596448/onec_codetemplate_parser.git
synced 2025-11-23 21:34:39 +02:00
Валидация параметров cli
This commit is contained in:
@@ -1,15 +1,32 @@
|
||||
"""Консольное приложение для вызова API библиотеки """
|
||||
|
||||
import typer
|
||||
from pathlib import Path
|
||||
from .api import parse_to_src, render_from_src
|
||||
|
||||
app = typer.Typer(
|
||||
help="Парсер шаблонов кода 1С.\n\n"
|
||||
"Позволяет разбирать шаблоны *.st в исходники src и обратно.")
|
||||
|
||||
def validate_file_enable(value: str):
|
||||
path = Path(value)
|
||||
if not path.is_file():
|
||||
raise typer.BadParameter(f"Файл отсутствует '{value}'")
|
||||
elif path.stat().st_size <=3:
|
||||
raise typer.BadParameter(f"Файл пустой '{value}'")
|
||||
return path
|
||||
|
||||
def validate_empty_dir(value: str):
|
||||
path = Path(value)
|
||||
if not path.is_dir() or not any(path.iterdir()):
|
||||
raise typer.BadParameter(f"Папка '{value}' не существует или пуста.")
|
||||
return path
|
||||
|
||||
@app.command(help="Разобрать шаблон из 1С-файла *.st в исходники src")
|
||||
def parse(
|
||||
path: str = typer.Argument(..., help="Путь к исходному 1С-файлу шаблона *.st", ),
|
||||
path: str = typer.Argument(...,
|
||||
callback=validate_file_enable,
|
||||
help="Путь к исходному 1С-файлу шаблона *.st", ),
|
||||
src: str = typer.Argument('./src', help="Папка, в которую будут сохранены исходники src")
|
||||
):
|
||||
"""
|
||||
@@ -24,8 +41,8 @@ def parse(
|
||||
|
||||
@app.command(help="Собрать шаблон из исходников src в 1С-файл *.st")
|
||||
def render(
|
||||
src: str = typer.Argument('./src', help="Папка с исходниками src для сборки шаблона"),
|
||||
path: str = typer.Argument(..., help="Путь, куда будет записан собранный 1С-файл *.st")
|
||||
path: str = typer.Argument(..., help="Путь, куда будет записан собранный 1С-файл *.st"),
|
||||
src: str = typer.Argument('./src', callback=validate_empty_dir, help="Папка с исходниками src для сборки шаблона")
|
||||
):
|
||||
"""
|
||||
Собирает 1С-шаблон (*.st) из исходников.
|
||||
|
||||
Reference in New Issue
Block a user