Skip to content
This repository has been archived by the owner on Aug 21, 2024. It is now read-only.
/ rise Public archive

A powerful text interpolation tool.

License

Notifications You must be signed in to change notification settings

openpixel/rise

Repository files navigation

Build Status Go Report Card GoDoc

rise

Powerful text interpolation. Documentation can be found here.

Note: rise is still in development and is subject to breaking changes until we reach our first major release.

Installation

Binaries

You can find binaries for the latest release on the releases page.

Go toolchain

$ go get -u github.com/openpixel/rise

Quickstart

CLI

You can see the usage documentation for the CLI by running rise --help.

$ rise --help
A powerful text interpolation tool.

Usage:
  rise [flags]
  rise [command]

Available Commands:
  help      Help about any command
  version   Print the version number of rise

Flags:
  -c, --config stringSlice    The files that define the configuration to use for interpolation
  -h, --help                  help for rise
  -i, --input string          The file to perform interpolation on
  -o, --output string         The file to output

Config Files

The config files should be in hcl compatible formats. See https://github.com/hashicorp/hcl for reference. Rise loads the files using FIFO, meaning the last file to reference a key will take precedence. For example, if we had two files that looked like this:

vars.hcl

variable "i" {
  value = 6
}

vars2.hcl

variable "i" {
  value = 10
}

And ran the following command

$ rise ... --config vars.hcl --config vars2.hcl

The value of i would be 10.

Examples

Look in the examples directory for an example, including inheritance:

$ rise -i ./examples/input.json -o ./examples/output.json --config ./examples/vars.hcl --config ./examples/vars2.hcl

Coming Soon

  • More interpolation methods
  • Deeper documentation with examples for interpolation methods
  • More configuration CLI arguments
    • Support for directories as inputs/outputs
    • Support for globs (eg: /tmp/*.json)

Inspiration

  • hashicorp/hil - Used to perform interpolation
  • hashicorp/hcl - Used as a configuration syntax for variables
  • hashicorp/terraform - Inspiration for the tool. A number of the interpolation functions have been extracted directly from terraform.