Имя файла и пути по умолчанию #43

Closed
opened 2026-06-30 08:03:57 +07:00 by artem.kokos · 0 comments
Owner

Контекст

Сейчас пользователь каждый раз вручную указывает --output report.xlsx или кладёт файл туда, куда текущая рабочая директория позволяет. Это неудобно для регулярной генерации отчётов.

Предложение

Добавить настройки пути и имени файла по умолчанию. Они должны жить в YAML-конфиге (~/.config/redmine-reporter/config.yml), см. #46.

Структура в конфиге

output:
  dir: ~/reports
  filename: "{author}_{from}_{to}.{ext}"
  default_format: xlsx

Поля

  • output.dir — каталог, куда сохраняется отчёт по умолчанию. ~ раскрывается в домашнюю директорию пользователя.
  • output.filename — шаблон имени файла. Поддерживаемые подстановки:
    • {author} — значение redmine.author из конфига;
    • {from} — начальная дата периода (YYYY-MM-DD);
    • {to} — конечная дата периода (YYYY-MM-DD);
    • {ext} — расширение по выбранному формату (xlsx, odt, csv, md, html, json).
  • output.default_format — формат, используемый, когда --output не указан, но требуется файл (например, при автоотправке по почте из #45).

Поведение CLI

  • Если указан --output report.xlsx — используется явный путь, конфиг игнорируется.
  • Если указан --output report без расширения — дописывается расширение по фактическому формату.
  • Если --output не указан, но нужен файл (например, --email или --commit из #44), берутся output.dir + output.filename.
  • Если в конфиге не задан output.dir, сохраняем в текущую директорию.
  • Если в конфиге не задан output.filename, дефолтное имя: {author}_{from}_{to}.{ext}.

Примеры

Конфиг:

redmine:
  author: "Кокос А.А."

period:
  default_from: "2026-06-01"
  default_to: "2026-06-30"

output:
  dir: ~/reports
  filename: "{author}_{from}_{to}.{ext}"

Команда:

redmine-reporter --output xlsx
# → ~/reports/Кокос_А.А._2026-06-01_2026-06-30.xlsx

Связанные задачи

  • #46 — YAML-конфиг, от которого зависит эта задача.
  • #44--commit может фиксировать период и генерировать файл с именем по умолчанию.
  • #45 — автоотправка по почте использует output.dir/output.filename для прикрепления вложения.

Критерии приёмки

  • В config.yml поддержана секция output.
  • Раскрывается ~ в output.dir.
  • Поддерживаются подстановки {author}, {from}, {to}, {ext}.
  • Явный --output всегда побеждает настройки по умолчанию.
  • Добавлены тесты на формирование пути из шаблона.
## Контекст Сейчас пользователь каждый раз вручную указывает `--output report.xlsx` или кладёт файл туда, куда текущая рабочая директория позволяет. Это неудобно для регулярной генерации отчётов. ## Предложение Добавить настройки пути и имени файла по умолчанию. Они должны жить в YAML-конфиге (`~/.config/redmine-reporter/config.yml`), см. #46. ## Структура в конфиге ```yaml output: dir: ~/reports filename: "{author}_{from}_{to}.{ext}" default_format: xlsx ``` ### Поля - `output.dir` — каталог, куда сохраняется отчёт по умолчанию. `~` раскрывается в домашнюю директорию пользователя. - `output.filename` — шаблон имени файла. Поддерживаемые подстановки: - `{author}` — значение `redmine.author` из конфига; - `{from}` — начальная дата периода (`YYYY-MM-DD`); - `{to}` — конечная дата периода (`YYYY-MM-DD`); - `{ext}` — расширение по выбранному формату (`xlsx`, `odt`, `csv`, `md`, `html`, `json`). - `output.default_format` — формат, используемый, когда `--output` не указан, но требуется файл (например, при автоотправке по почте из #45). ## Поведение CLI - Если указан `--output report.xlsx` — используется явный путь, конфиг игнорируется. - Если указан `--output report` без расширения — дописывается расширение по фактическому формату. - Если `--output` не указан, но нужен файл (например, `--email` или `--commit` из #44), берутся `output.dir` + `output.filename`. - Если в конфиге не задан `output.dir`, сохраняем в текущую директорию. - Если в конфиге не задан `output.filename`, дефолтное имя: `{author}_{from}_{to}.{ext}`. ## Примеры Конфиг: ```yaml redmine: author: "Кокос А.А." period: default_from: "2026-06-01" default_to: "2026-06-30" output: dir: ~/reports filename: "{author}_{from}_{to}.{ext}" ``` Команда: ```bash redmine-reporter --output xlsx # → ~/reports/Кокос_А.А._2026-06-01_2026-06-30.xlsx ``` ## Связанные задачи - #46 — YAML-конфиг, от которого зависит эта задача. - #44 — `--commit` может фиксировать период и генерировать файл с именем по умолчанию. - #45 — автоотправка по почте использует `output.dir`/`output.filename` для прикрепления вложения. ## Критерии приёмки - [ ] В `config.yml` поддержана секция `output`. - [ ] Раскрывается `~` в `output.dir`. - [ ] Поддерживаются подстановки `{author}`, `{from}`, `{to}`, `{ext}`. - [ ] Явный `--output` всегда побеждает настройки по умолчанию. - [ ] Добавлены тесты на формирование пути из шаблона.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: artem.kokos/redmine-reporter#43