stencil

module
v0.7.0-rc.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2024 License: Apache-2.0

README

stencil

A modern living-template engine for evolving repositories.

Latest Version License GitHub Workflow Status Codecov

Check out our Documentation for more information!

Install

Homebrew

brew install rgst-io/tap/stencil

Binary

Download the latest release from the releases page.

go install

go install github.com/rgst-io/stencil@latest

Development

Prerequisites

Note: If you opt to not use mise, please install all dependencies from .tool-versions manually.

  • mise - Ensure that you add the appropriate activations to your shell rc/profiles (details in the mise README)

Install the dependencies:

mise install

Building

mise run build

Testing

mise run test

Releasing

Trigger a new releases by using the Github CLI, or through the Github Actions Workflow UI.

gh workflow run release.yaml

Wait for CI to build and publish the release. You can watch the status by running the following command:

gh workflow view release.yaml --web

Building docs

If you have mise installed, you should have all the tooling you need for the docs engine. Run mise run docsdev from the root stencil directory to enter the watch-rebuild cycle to test your docs changes.

License

Apache-2.0

Directories

Path Synopsis
cmd
stencil
Package main contains the implementation for the stencil CLI.
Package main contains the implementation for the stencil CLI.
internal
cmd/stencil
Package stencil implements the stencil command, which is essentially a thing wrapper around the codegen package which does most of the heavy lifting.
Package stencil implements the stencil command, which is essentially a thing wrapper around the codegen package which does most of the heavy lifting.
codegen
Package codegen implements the core code generation functionality of stencil.
Package codegen implements the core code generation functionality of stencil.
dotnotation
Package dotnotation implements a dotnotation (hello.world) for accessing fields within a map[string]interface{}
Package dotnotation implements a dotnotation (hello.world) for accessing fields within a map[string]interface{}
git
Package git implements helpers for interacting with git
Package git implements helpers for interacting with git
git/vcs/github
Package github provides methods for creating a Github client for the purposes of interacting with the API.
Package github provides methods for creating a Github client for the purposes of interacting with the API.
modules
Package modules implements all logic needed for interacting with stencil modules and their interaction with a project generated by stencil.
Package modules implements all logic needed for interacting with stencil modules and their interaction with a project generated by stencil.
modules/modulestest
Package modulestest contains code for interacting with modules in tests.
Package modulestest contains code for interacting with modules in tests.
modules/nativeext
Package nativeext contains the logic for interacting with native extensions in stencil.
Package nativeext contains the logic for interacting with native extensions in stencil.
modules/nativeext/apiv1
Package apiv1 implements the bridge between a extension and go-plugin providing most of the implementation for the extension if it's written in Go.
Package apiv1 implements the bridge between a extension and go-plugin providing most of the implementation for the extension if it's written in Go.
modules/resolver
Package resolver implements a way to resolve versions using a set of criteria.
Package resolver implements a way to resolve versions using a set of criteria.
testing/cmdexec
Package cmdexec provides a way to execute commands using the exec package while supporting mocking for testing purposes.
Package cmdexec provides a way to execute commands using the exec package while supporting mocking for testing purposes.
version
Package version contains the current version of the stencil CLI.
Package version contains the current version of the stencil CLI.
pkg
configuration
Package configuration implements configuration loading logic for stencil repositories and template repositories
Package configuration implements configuration loading logic for stencil repositories and template repositories
extensions/apiv1
Package apiv1 exports the native extension API for Go extensions to implement.
Package apiv1 exports the native extension API for Go extensions to implement.
slogext
Package slogext is a small wrapper around the log/slog package focused on providing consistency in logging across the stencil codebase.
Package slogext is a small wrapper around the log/slog package focused on providing consistency in logging across the stencil codebase.
stencil
Package stencil provides an entry point for interacting with Stencil.
Package stencil provides an entry point for interacting with Stencil.
tools
docgen
Package main implements the docgen command.
Package main implements the docgen command.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL