• Mahmood Ali's avatar
    hcl2: special case meta and env blocks · 1e8a3606
    Mahmood Ali authored
    Allow expressing `meta` and `env` blocks as map attributes as well.
    `env` and `meta` should support arbitrary key and values, yet hcl2
    restricts the keys to valid identifiers. For example, block attribute
    identifiers may not contain dots, `.`, which frequently used in meta
    fields, and sometimes in environment variable fields.
    
    This change attempts to parse `env`/`meta` both as an attribute and as a
    block.
    
    This additionally allows better expressivity for env/meta blocks, using
    functions. For example, one can reuse a set of environment variables for
    multiple tasks, using a local common_envs value:
    
    ```hcl
    env = merge(local.common_envs, {"more_env_key", "..."})
    ```
    1e8a3606