The idea is to make the console interface of the package more friendly and convenient similar to Linux:
Для случаев апдейта конфигов можно сделать вариант примерно как для обновляемых конфигов пакетов в Линукс (скриншот выше), только ещё круче, благо возможность такая есть: после, например, composer update вывести список файлов, с которыми надо что-то сделать, чтобы между ними можно было переключаться кнопками вверх/вниз и выбирать, что с каждым конкретным файлом сделать. Плюс отдельно варианты применения ко всем оставшимся в списке файлам.
Example:
The following files have changes in both local and maintainer versions:
- file1.php
- file2.php
- file3.php
---------------------------
Batch actions for all the files above:
- Copy new versions as *.dist.php near the local ones
- Install maintainer versions
- Ignore all changes
В варианте выше юзер может кнопками вверх/вниз переключаться между шестью пунктами. Если выбран один из первых трех (какой-то файл), то задается вопрос, что с ним делать: игнорить, затереть локальную версию, скопировать новую версию в dist, показать изменения между локальной версией и новой, или же ничего не делать и вернуться в список. Если выбрано какое-то действие - возвращаемся обратно в список, из которого обработанный файл убираем. Если в списке файлов не осталось, то завершаем выполнение этого блока команд.
The idea is to make the console interface of the package more friendly and convenient similar to Linux:
Для случаев апдейта конфигов можно сделать вариант примерно как для обновляемых конфигов пакетов в Линукс (скриншот выше), только ещё круче, благо возможность такая есть: после, например,
composer update
вывести список файлов, с которыми надо что-то сделать, чтобы между ними можно было переключаться кнопками вверх/вниз и выбирать, что с каждым конкретным файлом сделать. Плюс отдельно варианты применения ко всем оставшимся в списке файлам.Example:
В варианте выше юзер может кнопками вверх/вниз переключаться между шестью пунктами. Если выбран один из первых трех (какой-то файл), то задается вопрос, что с ним делать: игнорить, затереть локальную версию, скопировать новую версию в dist, показать изменения между локальной версией и новой, или же ничего не делать и вернуться в список. Если выбрано какое-то действие - возвращаемся обратно в список, из которого обработанный файл убираем. Если в списке файлов не осталось, то завершаем выполнение этого блока команд.
Пример инструмента для построения подобных менюшек: https://github.com/php-school/cli-menu