Snapcraft e .sh

1

Como posso dizer ao Snapcraft para executar um arquivo .sh antes de make ? Eu sei que tenho que usar o comando after no arquivo yaml, mas como faço o Snapcraft executar o arquivo .sh ?

    
por laserpirate 27.12.2016 / 22:28

1 resposta

1

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?

    
por Kyle 28.12.2016 / 02:53