Сегодня в ветку experimental программы MyTetra был влит код, добавляющий очень важные изменения. MyTetra получила возможность управления командами из консоли.
Консольные команды
В настоящий момент поддерживается четыре команды:
1. Консольная команда выхода из MyTetra:
./mytetra --control --quit
После этой команды запущенный GUI-экземпляр MyTetra корректно завершит свою работу.
2. Команда перечитывания базы:
./mytetra --control --reload
Данная команда необходима, если база данных была изменена внешней программой или скриптом. Есть пользователи, которые сами дописывают функционал на сторонних скриптах, и раньше им приходилось уничтожать процесс MyTetra и запускать программу заново, чтобы перечитались изменения. Вот какую штуку под Windows сделал себе один из пользователей:
https://www.youtube.com/watch?v=NGA0VoDnK6w
Теперь перезапуск не требуется, ибо MyTetra может подхватить изменения без перезапуска.
3. Команда открытия на просмотр записи с нужным идентификатором:
./mytetra --control --openNote <id>
После этой команды в GUI-интерфейсе MyTetra откроется запись с указанным ID. Перед тем как произойдет переключение на указанную запись, изменения в редактируемой записи будут, естественно, сохранены.
4. Команда открытия ветки с нужным идентификатором:
./mytetra --control --openTreeItem <id>
После этой команды в GUI-интерфейсе MyTetra откроется ветка с указанным ID.
Что под капотом у консольных команд
Управление работой MyTetra из консоли происходит следующим образом. Сама GUI-программа получила возможность отлавливать сообщения, отправляемые другим экземпляром MyTetra. Так же, программа MyTetra научилась работать в консольном (управляющейм) режиме, через который и осуществляется управление. При запуске в управляющем режиме, GUI не вызывается, а работает только консоль. Признаком того, что MyTetra запускается в управляющем режиме, служит опция --control.
При запуске программы в управляющем режиме, GUI-экземпляру отправляется сообщение, содержащее необходимую команду. GUI-экземпляр выполняет команду, и пользователь видит результат.
Дальнейшее развитие управляющего режима видится в появлении команд добавления, удаления, изменения записей и веток. Но это будет делаться в случае, если возникнет реальная необходимость.
На этом пока все, следите за новостями.