github.com/aws-cloudformation/cloudformation-cli-go-plugin@v1.2.0/README.md (about) 1 ## AWS CloudFormation Resource Provider Go Plugin 2 3 The CloudFormation CLI (cfn) allows you to author your own resource providers that can be used by CloudFormation. 4 5 This plugin library helps to provide Go runtime bindings for the execution of your providers by CloudFormation. 6 7 Usage 8 ----- 9 10 If you are using this package to build resource providers for CloudFormation, install the [CloudFormation CLI Go Plugin](https://github.com/aws-cloudformation/cloudformation-cli-go-plugin) - this will automatically install the the [CloudFormation CLI](https://github.com/aws-cloudformation/cloudformation-cli)! A Python virtual environment is recommended. 11 12 ```bash 13 pip3 install cloudformation-cli-go-plugin 14 ``` 15 16 Refer to the documentation for the [CloudFormation CLI](https://github.com/aws-cloudformation/cloudformation-cli) for usage instructions. 17 18 Development 19 ----------- 20 21 For changes to the plugin, a Python virtual environment is recommended. Check out and install the plugin in editable mode: 22 23 ```bash 24 python3 -m venv env 25 source env/bin/activate 26 pip3 install -e /path/to/cloudformation-cli-go-plugin 27 ``` 28 29 You may also want to check out the [CloudFormation CLI](https://github.com/aws-cloudformation/cloudformation-cli) if you wish to make edits to that. In this case, installing them in one operation works well: 30 31 ```bash 32 pip3 install \ 33 -e /path/to/cloudformation-cli \ 34 -e /path/to/cloudformation-cli-go-plugin 35 ``` 36 37 That ensures neither is accidentally installed from PyPI. 38 39 Linting and running unit tests is done via [pre-commit](https://pre-commit.com/), and so is performed automatically on commit. The continuous integration also runs these checks. Manual options are available so you don't have to commit: 40 41 ```bash 42 # run all hooks on all files, mirrors what the CI runs 43 pre-commit run --all-files 44 # run unit tests only. can also be used for other hooks, e.g. black, isort, pytest-local 45 pre-commit run pytest-local 46 ``` 47 48 Use `./generate-examples.sh` to run install `cloudformation-cli-go-plugin` locally and run `cfn generate` in each example. 49 50 Getting started 51 --------------- 52 53 This plugin create a sample Go project and requires golang 1.8 or above and [godep](https://golang.github.io/dep/docs/introduction.html). For more information on installing and setting up your Go environment, please visit the official [Golang site](https://golang.org/). 54 55 Community 56 --------------- 57 58 Join us on Discord! Connect & interact with CloudFormation developers & 59 experts, find channels to discuss and get help for cfn-lint, CloudFormation registry, StackSets, 60 Guard and more: 61 62 [](https://discord.gg/9zpd7TTRwq) 63 64 License 65 ------- 66 67 This library is licensed under the Apache 2.0 License.