mirror of
https://github.com/opentffoundation/opentf.git
synced 2025-12-25 01:00:16 -05:00
migrate docs to mdx
This commit is contained in:
77
website/docs/language/functions/fileset.mdx
Normal file
77
website/docs/language/functions/fileset.mdx
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
page_title: fileset - Functions - Configuration Language
|
||||
description: The fileset function enumerates a set of regular file names given a pattern.
|
||||
---
|
||||
|
||||
# `fileset` Function
|
||||
|
||||
`fileset` enumerates a set of regular file names given a path and pattern.
|
||||
The path is automatically removed from the resulting set of file names and any
|
||||
result still containing path separators always returns forward slash (`/`) as
|
||||
the path separator for cross-system compatibility.
|
||||
|
||||
```hcl
|
||||
fileset(path, pattern)
|
||||
```
|
||||
|
||||
Supported pattern matches:
|
||||
|
||||
- `*` - matches any sequence of non-separator characters
|
||||
- `**` - matches any sequence of characters, including separator characters
|
||||
- `?` - matches any single non-separator character
|
||||
- `{alternative1,...}` - matches a sequence of characters if one of the comma-separated alternatives matches
|
||||
- `[CLASS]` - matches any single non-separator character inside a class of characters (see below)
|
||||
- `[^CLASS]` - matches any single non-separator character outside a class of characters (see below)
|
||||
|
||||
Note that the doublestar (`**`) must appear as a path component by itself. A
|
||||
pattern such as /path\*\* is invalid and will be treated the same as /path\*, but
|
||||
/path\*/\*\* should achieve the desired result.
|
||||
|
||||
Character classes support the following:
|
||||
|
||||
- `[abc]` - matches any single character within the set
|
||||
- `[a-z]` - matches any single character within the range
|
||||
|
||||
Functions are evaluated during configuration parsing rather than at apply time,
|
||||
so this function can only be used with files that are already present on disk
|
||||
before Terraform takes any actions.
|
||||
|
||||
## Examples
|
||||
|
||||
```
|
||||
> fileset(path.module, "files/*.txt")
|
||||
[
|
||||
"files/hello.txt",
|
||||
"files/world.txt",
|
||||
]
|
||||
|
||||
> fileset(path.module, "files/{hello,world}.txt")
|
||||
[
|
||||
"files/hello.txt",
|
||||
"files/world.txt",
|
||||
]
|
||||
|
||||
> fileset("${path.module}/files", "*")
|
||||
[
|
||||
"hello.txt",
|
||||
"world.txt",
|
||||
]
|
||||
|
||||
> fileset("${path.module}/files", "**")
|
||||
[
|
||||
"hello.txt",
|
||||
"world.txt",
|
||||
"subdirectory/anotherfile.txt",
|
||||
]
|
||||
```
|
||||
|
||||
A common use of `fileset` is to create one resource instance per matched file, using
|
||||
[the `for_each` meta-argument](/language/meta-arguments/for_each):
|
||||
|
||||
```hcl
|
||||
resource "example_thing" "example" {
|
||||
for_each = fileset(path.module, "files/*")
|
||||
|
||||
# other configuration using each.value
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user