Синхронизация данных MyTetra (git)

MyTetra — это полнофункциональный кроссплатформенный менеджер заметок (PIM-manager), использующийся для сбора и накопления различного рода информации. Все записи (заметки, статьи) организуются в древовидную структуру, а так же снабжаются ключевыми словами-тегами, позволяющими быстро находить нужные записи. Ссылки между записями, прикрепляемые файлы, шифрование, развернутый поиск, синхронизация, копирование из браузера, кроссплатформенность, один из лучших визуальных WYSIWYG редакторов текста – все это есть в PIM-менеджере MyTetra.
Лицензия: GPL v.3

Хранилище записей можно хранить просто локально, или синхронизировать с удаленным репозиторием. Данные хранятся в виде простых текстовых файлов (xml, html, ini), поэтому легко можно отслеживать все изменения.

Разработчик предоставил возможность запуска собственного скрипта для синхронизации записей при старте и завершении программы. Я использовал Git, хотя имею только базовые навыки работы с ним. Для меня было несколько необычно запихать в скрипт функционал сразу и чтения, и записи изменений, но в результате все работает как надо. Я использую программу на 3-х устройствах: Windows 7, Xubuntu 16.04 и Android 9 (MyTetroid).

Аналогичная статья есть на сайте разработчика. Алгоритм в целом такой же, я лишь добавил сохранение логов и оформил в виде отдельных командных файлов.


Подробнее

В скриптах я пытался сделать более-менее наглядное отображение результата команд одновременно и в консоль, и в лог-файл.

Все 3 скрипта я положил в папке scripts  в корне хранилища. Туда же ложаться и логи.

Сами файлы логов я не храню в git, поэтому добавил их в исключения в файле .gitignore :

Если же логи уже отслеживаются git’ом, то можно их оттуда убрать:

В настройках программы MyTetra сама команда синхронизации будет такой (пример для Linux-скрипта):

, где %a  – макрос для получения имени директории с данными.

Если для доступа к удаленному репозиторию используется тип авторизации по паролю (а не по ssh-ключу), то при выполнении некоторых команд (например,  git push) выполнение скрипта будет остановлено в ожидании ввода пароля. Во избежании этого можно попросить git сохранить пароль локально с помощью команды:

После этого нужно будет ввести пароль в последний раз и он сохранится.


Windows

Скрипт для Windows:

Пример лога Windows:


Linux

Скрипт для Linux:

Пример лога Linux:


Android

Подробная статья у меня есть здесь.

Запуск Git-скрипта в Android можно выполнять с помощью Termux (только для версий Android >= 7). 

Termux – приложение, реализующее Linux-подобную среду, взаимодействие с которой происходит посредством консоли без необходимости иметь root-права на устройстве.

Текст скрипта для Android аналогичен скрипту для Linux (кроме подписей).

При этом вызвать выполнение скрипта Termux из приложения MyTetroid, к сожалению, нельзя (пока ?).

Можно запускать напрямую из Termux:

Также, можно использовать дополнение Termux:Widget


Синхронизация перед выключением ОС

При обычном выключении ПК операционная система в процессе своего завершения закрывает запущенные программы “принудительно”, поэтому синхронизация MyTetra не запускается, даже если установлена соответствующая опция. Поэтому целесообразно завершать работу “вручную” скриптом, указав нужную последовательность действий. Можно указать выполнение скрипта при нажатии комбинации клавиш (например, Ctrl+Alt+Q, получается удобно), или просто создать ярлык на рабочем столе/в меню быстрого вызова программ.
 
Скрипт для Linux:

 

Скрипт для Windows:

2 thoughts on “Синхронизация данных MyTetra (git)

  1. Скажите, совпадает ли структура директории хранения базы MyTetra на декстопах и Android-устройствах? Пользуюсь MyTetra на 3 дектопах Linux (/home/alex/myTetra/data/), синхронизирую базу через Mega одноименным клиентом. Можно ли синхронизировать базу с телефоном, установив Mega-клиент на Android?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *