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 библиотеки """
|
"""Консольное приложение для вызова API библиотеки """
|
||||||
|
|
||||||
import typer
|
import typer
|
||||||
|
from pathlib import Path
|
||||||
from .api import parse_to_src, render_from_src
|
from .api import parse_to_src, render_from_src
|
||||||
|
|
||||||
app = typer.Typer(
|
app = typer.Typer(
|
||||||
help="Парсер шаблонов кода 1С.\n\n"
|
help="Парсер шаблонов кода 1С.\n\n"
|
||||||
"Позволяет разбирать шаблоны *.st в исходники src и обратно.")
|
"Позволяет разбирать шаблоны *.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")
|
@app.command(help="Разобрать шаблон из 1С-файла *.st в исходники src")
|
||||||
def parse(
|
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")
|
src: str = typer.Argument('./src', help="Папка, в которую будут сохранены исходники src")
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
@@ -24,8 +41,8 @@ def parse(
|
|||||||
|
|
||||||
@app.command(help="Собрать шаблон из исходников src в 1С-файл *.st")
|
@app.command(help="Собрать шаблон из исходников src в 1С-файл *.st")
|
||||||
def render(
|
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) из исходников.
|
Собирает 1С-шаблон (*.st) из исходников.
|
||||||
|
|||||||
Reference in New Issue
Block a user