Para o propósito desta resposta, vou assumir que a aplicação contida no seu snap tem command: my-binary
.
Você realmente tem duas opções:
-
Quebra seu aplicativo em um script que garanta que o arquivo de configuração tenha sido migrado antes de ser executado. Por exemplo, se você escreveu um script chamado
run-my-binary
que se parece com isso:#!/bin/sh # Migrate config if necessary if [ ! -d $SNAP_COMMON/my.config ]; then cp $SNAP/conf/default.conf $SNAP_COMMON/my.config fi my-binary
Altere seu snapcraft.yaml para instalar este script e altere seu aplicativo para
command: run-my-binary
. - Use o
configure
hook , que é executado na instalação inicial (entre outras vezes). Isso pode ser um shell script muito parecido com o wrapper.
Observe que, embora eu quisesse responder à pergunta que você fez, não recomendo realmente colocar os arquivos de configuração em $SNAP_COMMON
, já que é especificamente não-versionado. Não será feito backup quando você fizer upgrade / reversão. Eu recomendo usar $SNAP_DATA
. Para mais informações veja esta resposta .