Skip to content

appspec.yml pattern and exclude file globs #151

Open
@ndench

Description

@ndench

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Researching

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions