It would be great if the pattern and exclude keys accepted bash file globs and worked properly across sub directories. For example, I have a Symfony4 app that looks like:
bin/
console
config/
services.yaml
public/
index.php
src/
MyController.php
templates/
my_template.html.twig
I want all directories to have mode 750 and all files to have mode 640. Except for the bin/console file which needs mode 750.
This is the config that I've tried in appspec.yml:
version: 0.0
os: linux
files:
- source: /
destination: /srv/www/app/
permissions:
- object: /srv/www/app
owner: ubuntu
group: www-data
mode: 750
type:
- directory
- object: /srv/www/app
pattern: '**'
except:
- bin/console # also tried 'console' and 'bin/*' and '/srv/www/app/bin/console'
owner: ubuntu
group: www-data
mode: 640
type:
- file
- object: /srv/www/app/bin
owner: ubuntu
group: www-data
mode: 750
type:
- file
But I get the following error:
The deployment failed because the permissions setting for (/srv/www/app/bin/console) is specified more than once in the application specification file. Update the files section of the AppSpec file, and then try again.
I can't seem to find a value which I can put in the except key that successfully excludes the bin/console file. If it supported bash file globs you could easily do something like bin/* because all the files in the bin directory are going to need different permissions.
It would be great if the
patternandexcludekeys accepted bash file globs and worked properly across sub directories. For example, I have a Symfony4 app that looks like:I want all directories to have mode
750and all files to have mode640. Except for thebin/consolefile which needs mode750.This is the config that I've tried in
appspec.yml:But I get the following error:
I can't seem to find a value which I can put in the
exceptkey that successfully excludes thebin/consolefile. If it supported bash file globs you could easily do something likebin/*because all the files in the bin directory are going to need different permissions.