diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 8e6a152..9a4a621 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -167,8 +167,10 @@ jobs:
with:
name: builds
- - name: Checksums with SHA512
- run: sha512sum keyweave-* | tee SHA512SUMS
+ - name: Checksums with SHA512 and SHA256
+ run: |
+ sha512sum keyweave-* | tee SHA512SUMS
+ sha256sum keyweave-* | tee SHA256SUMS
- uses: softprops/action-gh-release@v1
env:
@@ -179,4 +181,29 @@ jobs:
files: |
keyweave-*.tar.xz
keyweave-*/keyweave.exe
- *SUMS*
\ No newline at end of file
+ *SUMS*
+
+ - name: Create Homebrew inputs
+ id: homebrew-inputs
+ run: |
+ sha256sums="{$(awk '{printf "%s '\''%s'\'': '\''%s'\''", (NR>1 ? "," : ""), $2, $1} END {print ""}' SHA256SUMS)}"
+ echo "sha256sums=$sha256sums" >> $GITHUB_OUTPUT
+ echo "version=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
+
+ - uses: actions/github-script@v6
+ name: Dispatch Homebrew release
+ with:
+ github-token: ${{ secrets.PAT_TOKEN }}
+ script: |
+ const sha256sums = JSON.parse('${{ steps.homebrew-inputs.outputs.sha256sums }}');
+
+ await github.rest.actions.createWorkflowDispatch({
+ owner: 'bartvdbraak',
+ repo: 'homebrew-keyweave',
+ workflow_id: 'release.yml',
+ ref: 'main',
+ inputs: {
+ version: '${{ steps.homebrew-inputs.outputs.version }}',
+ sha256sums: JSON.stringify(sha256sums)
+ }
+ })
\ No newline at end of file
diff --git a/README.md b/README.md
index a0a6308..f1ee98e 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-Keyweave is an open-source tool designed to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave is efficient and easy to use, making it an ideal choice for managing your application's secrets.
+Keyweave is an open-source tool crafted to seamlessly fetch secrets from Azure Key Vault and weave them into a convenient `.env` file. Developed in Rust, Keyweave stands out for its efficiency and user-friendly design, making it an ideal choice for managing your application's secrets.
## Features
@@ -13,30 +13,52 @@ Keyweave is an open-source tool designed to seamlessly fetch secrets from Azure
## Prerequisites
-- **Rust**: Ensure you have Rust installed on your system. If not, you can install it using [rustup](https://rustup.rs/).
-- **Azure Account**: Log into your Azure tenant and set up the right subscription.
+Before diving into Keyweave, ensure you have the following prerequisites:
-## Installation
+- **Azure Account**: Log into your Azure tenant and set up the right subscription, along with any Access Policies required for you to read and list secrets from your Key Vault.
-Clone the repository to your local machine:
+```sh
+az login --tenant "your-tenant-guid"
+az account set --subscription "your-subscription-guid"
+```
+
+## Installation (MacOS, Linux)
+
+For MacOS and Linux systems, installation is a breeze with [Homebrew](https://brew.sh/). Simply run:
+
+```bash
+brew tap bartvdbraak/keyweave
+brew install keyweave
+```
+
+## Manual Download
+
+If you prefer manual installation or need binaries for different platforms (including an executable for Windows), visit the [Releases](/releases) page of this GitHub repository.
+
+## Building from Source
+
+Keyweave is built with [Cargo](https://doc.rust-lang.org/cargo/), the Rust package manager.
+
+To build Keyweave from source, follow these steps:
```sh
git clone https://github.com/bartvdbraak/keyweave.git
cd keyweave
+cargo build --release
```
-Build the project:
+Once built, run Keyweave using Cargo:
```sh
-cargo build --release
+cargo run -- --vault_name [--output ] [--filter ]
```
## Usage
-After building the project, you can run Keyweave using the following command:
+With the binary on your `PATH`, run Keyweave as follows:
```sh
-cargo run -- --vault_name [--output ] [--filter ]
+keyweave --vault_name [--output ] [--filter ]
```
- `--vault_name `: Sets the name of the Azure Key Vault.
@@ -46,13 +68,13 @@ cargo run -- --vault_name [--output ] [--filter ]
## Example
```sh
-cargo run -- --vault_name my-key-vault --output my-env-file.env --filter my-secret
+keyweave --vault_name my-key-vault --output my-env-file.env --filter my-secret
```
## License
-Keyweave is licensed under the GLPv3 License. See [LICENSE](LICENSE) for more details.
+Keyweave is licensed under the GPLv3 License. See [LICENSE](LICENSE) for more details.
## Contributing
-We welcome contributions! Please feel free to submit pull requests, report issues, or suggest new features.
+We welcome contributions! Feel free to submit pull requests, report issues, or suggest new features. Your input helps make Keyweave even better.