Tenho dois repositórios para um site: um para o backend, um para o frontend. Quero copiar arquivos do frontend para o diretório do backend, para que tudo possa ser servido de um só lugar.
Quando executo o build
comando no frontend, uma pasta chamada dist/
é criada. Quero copiar todos esses arquivos para uma pasta com o caminho relativo ../backend/public
. Essa public
pasta pode já conter alguns outros arquivos.
Meu script atual usa nomes codificados para index.html
e e assets/
diretório, mas mais arquivos podem ser adicionados ao longo do tempo, então eu gostaria de uma solução genérica que copie tudo o que não foi alterado dist/
para ../backend/public
.
#!/bin/bash
cd ../backend/public
rm -rf index.html assets
cp ../../frontend/dist/index.html ./
cp -r ../../frontend/dist/assets ./assets
Seu script poderia ser condensado em:
Não há razão para isso
cd
no script, nem para excluir arquivos existentes se você estiver copiando coisas com o mesmo nome, você só precisa excluir diretórios, pois, caso contrário, se eles existirem, quaisquer arquivos com um nome diferente serão mantidos. Se você só copiar arquivos com o mesmo nome, isso também não é necessário.Para torná-lo mais genérico, você pode passar a lista de arquivos/diretórios que deseja copiar:
Que você executaria a partir do
frontend
diretório assim: