|
1 | | -# Terraform Provider Scaffolding (Terraform Plugin SDK) |
| 1 | +# Dirhash |
| 2 | +Computing the checksum of a directory made easy. |
2 | 3 |
|
3 | | -_This template repository is built on the [Terraform Plugin SDK](https://github.com/hashicorp/terraform-plugin-sdk). The template repository built on the [Terraform Plugin Framework](https://github.com/hashicorp/terraform-plugin-framework) can be found at [terraform-provider-scaffolding-framework](https://github.com/hashicorp/terraform-provider-scaffolding-framework). See [Which SDK Should I Use?](https://www.terraform.io/docs/plugin/which-sdk.html) in the Terraform documentation for additional information._ |
| 4 | +## Dirhash Provider |
| 5 | +Dirhash was created to compute the checksum of a directory, |
| 6 | +a useful provider if you try to make Terraform react and make changes |
| 7 | +based on whether changes have been made inside a directory or not. |
4 | 8 |
|
5 | | -This repository is a *template* for a [Terraform](https://www.terraform.io) provider. It is intended as a starting point for creating Terraform providers, containing: |
6 | | - |
7 | | - - A resource, and a data source (`internal/provider/`), |
8 | | - - Examples (`examples/`) and generated documentation (`docs/`), |
9 | | - - Miscellaneous meta files. |
10 | | - |
11 | | -These files contain boilerplate code that you will need to edit to create your own Terraform provider. Tutorials for creating Terraform providers can be found on the [HashiCorp Learn](https://learn.hashicorp.com/collections/terraform/providers) platform. |
12 | | - |
13 | | -Please see the [GitHub template repository documentation](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template) for how to create a new repository from this template on GitHub. |
14 | | - |
15 | | -Once you've written your provider, you'll want to [publish it on the Terraform Registry](https://www.terraform.io/docs/registry/providers/publishing.html) so that others can use it. |
16 | | - |
17 | | - |
18 | | -## Requirements |
19 | | - |
20 | | -- [Terraform](https://www.terraform.io/downloads.html) >= 0.13.x |
21 | | -- [Go](https://golang.org/doc/install) >= 1.18 |
22 | | - |
23 | | -## Building The Provider |
24 | | - |
25 | | -1. Clone the repository |
26 | | -1. Enter the repository directory |
27 | | -1. Build the provider using the Go `install` command: |
28 | | -```sh |
29 | | -$ go install |
30 | | -``` |
31 | | - |
32 | | -## Adding Dependencies |
33 | | - |
34 | | -This provider uses [Go modules](https://github.com/golang/go/wiki/Modules). |
35 | | -Please see the Go documentation for the most up to date information about using Go modules. |
36 | | - |
37 | | -To add a new dependency `github.com/author/dependency` to your Terraform provider: |
38 | 9 |
|
| 10 | +### Usage |
| 11 | +As noted above, the Dirhash provider can compute the checksum of a directory, |
| 12 | +the data_source `dirhash_sha256` can be used to retrieve the SHA256 of a directory. |
| 13 | +For example: |
| 14 | +```terraform |
| 15 | +provider "dirhash" {} |
39 | 16 | ``` |
40 | | -go get github.com/author/dependency |
41 | | -go mod tidy |
42 | | -``` |
43 | | - |
44 | | -Then commit the changes to `go.mod` and `go.sum`. |
45 | | - |
46 | | -## Using the provider |
47 | | - |
48 | | -Fill this in for each provider |
49 | | - |
50 | | -## Developing the Provider |
51 | | - |
52 | | -If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (see [Requirements](#requirements) above). |
53 | | - |
54 | | -To compile the provider, run `go install`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory. |
55 | | - |
56 | | -To generate or update documentation, run `go generate`. |
57 | | - |
58 | | -In order to run the full suite of Acceptance tests, run `make testacc`. |
59 | | - |
60 | | -*Note:* Acceptance tests create real resources, and often cost money to run. |
61 | | - |
62 | | -```sh |
63 | | -$ make testacc |
| 17 | +```terraform |
| 18 | +data "dirhash_sha256" "example" { |
| 19 | + directory = "/path/to/directory" |
| 20 | + ignore = [ |
| 21 | + "glob_pattern_1/*", |
| 22 | + "glob_pattern_2/*" |
| 23 | + ] |
| 24 | +} |
| 25 | +output "directory_sha256_checksum" { |
| 26 | + description = "the Output SHA256 Checksum for the directory" |
| 27 | + value = data.dirhash_sha256.example.checksum |
| 28 | +} |
64 | 29 | ``` |
0 commit comments