Esta resposta assume que você está no Xenial usando o Snapcraft v2.24 (o mais recente até o momento desta publicação).
Digamos que você tenha o seguinte Makefile:
all:
@touch built
install:
@cp prepared $(DESTDIR)/
@cp built $(DESTDIR)/
@touch $(DESTDIR)/installed
O script de shell a seguir (chamado prepare.sh
, certifique-se de que é executável):
#!/bin/sh
touch prepared
Além dos seguintes snapcraft.yaml
:
name: test-snap
version: '0.1'
summary: summary
description: description
grade: devel
confinement: strict
parts:
my-part:
plugin: make
# The 'prepare' keyword specifies what should happen before this
# part is built (i.e. in this case before 'make' is run). It
# consists of shell commands.
prepare: |
./prepare.sh
Coloque todos no mesmo diretório e execute snapcraft prime
. Após a conclusão, você verá três arquivos no diretório prime/
(diferente do diretório meta/
): prepared
(gerado pelo shell script e instalado pelo Makefile), built
(gerado e instalado pelo Makefile) e installed
(gerado e instalado pelo Makefile).
O uso da palavra-chave prepare
funcionaria para seu caso de uso?