Skip to content

Commit 18b65a6

Browse files
authored
feat: add initial provider (#2)
* feat: add initial provider * fix: remove issue bot workflow * refactor: improved string slice conversion function name * docs: changed calculate checksum to compute * docs: changed calculate checksum to compute
1 parent d893a6f commit 18b65a6

File tree

21 files changed

+208
-391
lines changed

21 files changed

+208
-391
lines changed

.github/workflows/add-content-to-project.yml

Lines changed: 0 additions & 40 deletions
This file was deleted.

README.md

Lines changed: 24 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,29 @@
1-
# Terraform Provider Scaffolding (Terraform Plugin SDK)
1+
# Dirhash
2+
Computing the checksum of a directory made easy.
23

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.
48

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:
389

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" {}
3916
```
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+
}
6429
```

docs/data-sources/data_source.md

Lines changed: 0 additions & 32 deletions
This file was deleted.

docs/data-sources/sha256.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "dirhash_sha256 Data Source - terraform-provider-dirhash"
4+
subcategory: ""
5+
description: |-
6+
Compute SHA256 checksum of a given directory
7+
---
8+
9+
# dirhash_sha256 (Data Source)
10+
11+
Compute SHA256 checksum of a given directory
12+
13+
## Example Usage
14+
15+
```terraform
16+
data "dirhash_sha256" "example" {
17+
directory = "/path/to/directory"
18+
ignore = [
19+
"glob_pattern_1/*",
20+
"glob_pattern_2/*"
21+
]
22+
}
23+
24+
output "directory_sha256_checksum" {
25+
description = "the Output SHA256 Checksum for the directory"
26+
value = data.dirhash_sha256.example.checksum
27+
}
28+
```
29+
30+
<!-- schema generated by tfplugindocs -->
31+
## Schema
32+
33+
### Required
34+
35+
- `directory` (String) Directory to hash.
36+
37+
### Optional
38+
39+
- `ignore` (List of String) List of ignored glob patterns.
40+
41+
### Read-Only
42+
43+
- `checksum` (String) Directory SHA 256 Checksum
44+
- `id` (String) The ID of this resource.
45+
46+

docs/index.md

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
11
---
2-
# generated by https://github.com/hashicorp/terraform-plugin-docs
3-
page_title: "scaffolding Provider"
4-
subcategory: ""
2+
page_title: "Provider: Dirhash"
53
description: |-
6-
4+
Compute checksum for a given directory
75
---
86

9-
# scaffolding Provider
7+
# Dirhash Provider
108

9+
Dirhash was created to compute the checksum of a directory,
10+
a useful provider if you try to make Terraform react and make changes
11+
based on whether changes have been made inside a directory or not.
1112

13+
## Data Source "dirhash_sha256"
1214

13-
## Example Usage
15+
As noted above, the Dirhash provider can compute the checksum of a directory,
16+
the data_source `dirhash_sha256` can be used to retrieve the SHA256 of a directory.
17+
18+
For example:
1419

1520
```terraform
16-
provider "scaffolding" {
17-
# example configuration here
18-
}
21+
provider "dirhash" {}
1922
```
23+
```terraform
24+
data "dirhash_sha256" "example" {
25+
directory = "/path/to/directory"
26+
ignore = [
27+
"glob_pattern_1/*",
28+
"glob_pattern_2/*"
29+
]
30+
}
2031
21-
<!-- schema generated by tfplugindocs -->
22-
## Schema
32+
output "directory_sha256_checksum" {
33+
description = "the Output SHA256 Checksum for the directory"
34+
value = data.dirhash_sha256.example.checksum
35+
}
36+
```

docs/resources/resource.md

Lines changed: 0 additions & 32 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
data "dirhash_sha256" "example" {
2+
directory = "/path/to/directory"
3+
ignore = [
4+
"glob_pattern_1/*",
5+
"glob_pattern_2/*"
6+
]
7+
}
8+
9+
output "directory_sha256_checksum" {
10+
description = "the Output SHA256 Checksum for the directory"
11+
value = data.dirhash_sha256.example.checksum
12+
}

examples/data-sources/scaffolding_data_source/data-source.tf

Lines changed: 0 additions & 3 deletions
This file was deleted.

examples/provider/provider.tf

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
provider "scaffolding" {
2-
# example configuration here
3-
}
1+
provider "dirhash" {}

examples/resources/scaffolding_resource/resource.tf

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)