December 20, 2020

Fixing ZESP32 config location

XDG Base Directory Specification

tl;dr Конфиги надо хранить отдельно от кода чтобы при обновлении они не пропали. Всё на свой страх и риск. Делайте бекапы.

Скрипт создаёт каталог ${HOME}/.config/zesp32 /etc/zesp32, переносит в него следующие файлы (сделайте бекап) и заменяет эти файлы симлинками:

  • /opt/app/desktop/jsconfig.txt - settings
  • /opt/app/desktop/devicesjs.txt - devices
  • /opt/app/desktop/script.js - scripts
  • /opt/app/desktop/workspace.xml - blockly

Прикончите zesp

## Если запускаете через ./start.sh
killall start.sh
killall node
## Если через /etc/init.d/zesp32
/etc/init.d/zesp32

Выполните (на OpenWRT используется ash).

wget -O /tmp/owrt-zesp-fix-config.sh https://gist.githubusercontent.com/avalak-work/e9b0ea0f607c4528ceaa7f3a23fa360b/raw/9e47c54348a55e41acffce004480feacaff8ed20/owrt-zesp-fix-config.sh
ash /tmp/owrt-zesp-fix-config.sh

В результате должно получиться так

root@openlumi:/tmp# ll /opt/app/desktop/devicesjs.txt /opt/app/desktop/workspace.xml /opt/app/desktop/script.js /opt/app/desktop/jsconfig.txt
lrwxrwxrwx    1 root     root            34 Dec 20 18:11 /opt/app/desktop/devicesjs.txt -> /etc/zesp32/v1/devicesjs.txt
lrwxrwxrwx    1 root     root            33 Dec 20 18:11 /opt/app/desktop/jsconfig.txt -> /etc/zesp32/v1/jsconfig.txt
lrwxrwxrwx    1 root     root            30 Dec 20 18:11 /opt/app/desktop/script.js -> /etc/zesp32/v1/script.js
lrwxrwxrwx    1 root     root            34 Dec 20 18:11 /opt/app/desktop/workspace.xml -> /etc/zesp32/v1/workspace.xml

Теперь zesp можно снова запустить.