Мне нужно запустить команду для инициализации среды для приложения. Это должно произойти только один раз при установке пакета Snap.
Пакеты DEB предоставляют пост-установочный скрипт, который служит этой и многим другим целям, таким как настройка пользовательских учетных записей приложений и т. Д.
Итак, что же такое пост-установочный скрипт DEB в пакетах моментальных снимков?
Нет никакого сообщения* сценарий нарочно (чтобы гарантировать, чтобы у Вас были транзакционные обновления).
Некоторая система рычагов, хотя был бы выпущен очень скоро в самом snapd, чтобы включить Вам достигающий этого. Это еще не доступно в эту дату, хотя, но можно использовать флаг файла $SNAP_DATA, чтобы заставить демона ожидать до пользовательского файла конфигурация (через другую команду из того же снимка, например).
Можно настроить среду для приложения в сценарии средства запуска, который делает это прежде, чем запустить приложение. То, что говорит @didrocks, - то, что можно создать скрытый файл флага в $SNAP_DATA
папка, чтобы знать, было ли приложение запущено ранее или нет.
, Например, у Вас может быть сценарий удара в $SNAP/bin/myapp-launcher.sh
, который работает:
#!/bin/sh
...
if [ ! -e "$SNAP_DATA/.flag_file ]; then
<configure the app>
touch $SNAP_DATA/.flag_file
fi
...
exec "<command of your app>" "$@"
и в snapcraft.yaml
настраивают то приложение, которое будет запущено путем вызова его средства запуска, как
...
apps:
myapp:
command: bin/myapp-launcher.sh
...