Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tmpltr

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tmpltr

Templating with mustache and YAML

  • 1.1.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

tmpltr - templating files with mustache and YAML

__       __                  ____      
\ \     / /_____ ___  ____  / / /______
 \ \   / __/ __ `__ \/ __ \/ / __/ ___/
 / /  / /_/ / / / / / /_/ / / /_/ /    
/_/   \__/_/ /_/ /_/ .___/_/\__/_/     
                  /_/                  

Concept

This tool generates a set of files based on one or more templates in combination with a set of values used as tempalte variables.
For tempaltes, mustache is used. For the manifest file, YAML is used (*.yaml and *.yml are equally supported).
For execution, at least one *.mustache template and one *.yml manifest file are required.

Usage

tmpltr [workingDirectory] [--manifest <manifest yml file>] [--verbose] [--dryrun] [--console]

Options and switches

optionoptionaldefaultdescription
workingDirectorytrue.working directory in which to search for the templates and the manifest.yml files (if not further specified)
--verbosetruefalseincreased output on "debug" level
--dryruntruefalsedo not write any templated files
--consoletruefalseprint the templated files to the console
--manifesttrue''location of the manifest.yml file. absolute or relative to the pwd
--stdintruefalsereads the manifest file data from stdin. useful for usage with secrets

File structure

For mustache template files, please refer to the official documentation
manifest.yml file structure:

---
# list of files to be generated
files: 
    # destination file relative to the working directory
  - destination: ./foo.txt 
    # template file name. all template files must be in the working directory. 
    # *.mustache file extension is optional.
    template: my-template[.mustache] 
    # object of values to be rendered into the template
    values:
      foo: "foo"
      bar: "bar"
      fizzBuzz: 42

Locating the manifest file

The --manifest switch of the tmpltr command can be used to specify the manifest file. It has highest priority and is considered to be either absolute or relative to the pwd.

/home/
├─ some-project/
│  ├─ templates/
│  │  ├─ manifest.yml
│  │  ├─ template-a.mustache
│  │  ├─ template-b.mustache
│  ├─ README.md
│  ├─ my-manifest.yml
cd /home/some-project/
tmpltr --manifest ./my-manifest.yml templates
# equivalent to
tmpltr --manifest /home/some-project/my-manifest.yml templates

If no --manifest switch is specified, the manifest.y[a]ml file is searched in the working directory.

cd /home/some-project/
tmpltr templates # uses the manifest.yml file in the templates directory
# equivalet to
cd /home/some-project/templates/
tmpltr # uses the pwd (/home/some-project/templates/) as working directory and uses the manifest.yml file

If no manifest.y[a]ml file is found, all *.y[a]ml files in the working directory are considered to be manifest files and checked against the YAML validator.

/home/
├─ some-project/
│  ├─ templates/
│  │  ├─ manifest-a.yml
│  │  ├─ manifest-b.yaml
│  │  ├─ template-a.mustache
│  │  ├─ template-b.mustache
│  ├─ README.md
│  ├─ my-manifest.yml
cd /home/some-project/
tmpltr templates # uses manifest-a.yml AND manifest-b.yaml

With npm/npx

npm i -g tmpltr
# OR
npx tmpltr

With docker

docker run --rm -v ${PWD}:/usr/src mxcd/tmpltr

Made with ♥, pizza and beer by MaPa

Keywords

FAQs

Package last updated on 29 Aug 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc