tmplt is a command-line interface tool that allows you to quickly and easily set up project templates for various programming languages and frameworks

Overview

tmplt

CICD Version info

A User Friendly CLI Tool For Creating New Projects With Templates

Demo

About

tmplt is a command-line tool that lets users quickly create new projects based on templates. With tmplt, users can create a new project that is set up with all the necessary files and dependencies, so they can get started on their project right away.

With tmplt, users can create templates that define the structure and dependencies of a new project. These templates can be customized to fit specific project needs and shared with others. tmplt comes with a simple yet flexible syntax for defining templates that can include variables, files, and dependencies.

Templates are defined in a yaml file that lists all the files to be generated, the dependencies to be installed, and the variables to be replaced.

Templates

Templates are files that contain information about the project, its dependencies, files to generate, and variables. Users can use these templates to set up projects easily.

A template file is written in YAML format and contains the following information:

  • Name: The name of the template.

  • Description: A short description of the template.

  • Dependencies: A list of dependencies required by the project. Each dependency contains a name and an install command.

  • Files: A list of files to generate for the project. Each file contains a name and the content to be written to the file.

  • Variables: A list of variables that can be used in the template. Each variable contains a name, description, and default value.

Users can create their own templates or download them from the internet. To create a new project from a template, simply run the tmplt new command and provide the name of the template. The tool will generate all the necessary files and install the required dependencies. See usage.md for more information on how to use the tool

Here's an example template for a Pygame project:

# Pygame Project Template

# Template information
name: Pygame Project
description: A template for creating a Pygame project

# Dependency information
dependencies:
  - name: Pygame
    install_command: pip install pygame

# Files to generate
files:
  - name: main.py
    content: |
      import pygame

      # Set up pygame
      pygame.init()

      # Set up the display
      screen_width = {screen_width}
      screen_height = {screen_height}
      screen = pygame.display.set_mode((screen_width, screen_height))
      pygame.display.set_caption("{app_name}")

      # Game loop
      running = True
      while running:
          # Event handling
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False

          # Game logic

          # Draw to screen
          screen.fill((255, 255, 255))
          pygame.display.flip()

      # Clean up pygame
      pygame.quit()


# Variables
variables:
  - name: app_name
    description: The name of the pygame app
    default: my_pygame_app

  - name: screen_width
    description: The screen width of the pygame app
    default: 800

  - name: screen_height
    description: The screen height of the pygame app
    default: 600

Installation

You can install tmplt through a few methods

Releases

You can head over to the releases page and download the official tmplt binaries from there for your target operating system. Windows MSI installers are also available

Cargo Repository

You can install tmplt through the Cargo repository using the following command:

$ cargo install tmplt

Source

Go here to see how

More methods of installation will be added in the future!

Usage

Go here to see how to use the tool

Contributing

Contributions to tmplt are always welcome! Please see the Contributing Guidelines for more information.

License

This project is licensed under the MIT License and the Apache License

You might also like...
🎄 Advent of Code written in various languages. (2015-2022)

🎄 Advent of Code This repository contains my solutions to the Advent of Code puzzles. Every year, I will try to solve the puzzles in a different lang

A CLI for analyzing the programming languages and how much code written in a project.
A CLI for analyzing the programming languages and how much code written in a project.

projlyzer A CLI for analyzing the programming languages and how much code written in a project. New features are on the way... Example Screenshot Buil

Given a set of kmers (fasta format) and a set of sequences (fasta format), this tool will extract the sequences containing the kmers.

Kmer2sequences Description Given a set of kmers (fasta / fastq [.gz] format) and a set of sequences (fasta / fastq [.gz] format), this tool will extra

Programming language made by me to learn other people how to make programming languages :3
Programming language made by me to learn other people how to make programming languages :3

Spectra programming language Programming language made for my tutorial videos (my youtube channel): Syntax Declaring a variable: var a = 3; Function

rpsc is a *nix command line tool to quickly search for file systems items matching varied criterions like permissions, extended attributes and much more.

rpsc rpsc is a *nix command line tool to quickly search for file systems items matching varied criterions like permissions, extended attributes and mu

🍅 A command-line tool to get and set values in toml files while preserving comments and formatting

tomato Get, set, and delete values in TOML files while preserving comments and formatting. That's it. That's the feature set. I wrote tomato to satisf

A tool crate to quickly build rust command line application.

Falsework A tool crate to quickly build rust command line application.

Lightweight command line tool to quickly navigate across folders.

slingshot 0.3.0 Slingshot is a lightweight tool to browse files in the terminal. It allows the user to quickly filter through files in any directory,

A command line tool for easily generating multiple versions of a configuration file from a single template

MultiConf A command line tool for easily generating multiple versions of a configuration file from a single template. Why? I'm a big fan of the i3 win

Owner
Humble Penguin
bored out of my mind
Humble Penguin
This is a simple command-line interface tool that allows you to interact with ChatGPT from OpenAI or Azure.

HeyGPT This is a simple command-line interface tool that allows you to interact with ChatGPT from OpenAI or Azure. You can use it to: Chat with ChatGP

Philip 5 Mar 28, 2023
Terminal UI that allows Alacritty users to quickly and easily shuffle through provided themes 🦄

Alac-pretty alac-pretty.mp4 If you're like me in that you constantly need to change the colors of your dev environment because visual stagnation reall

Benji Nguyen 17 Aug 29, 2022
Sero is a web server that allows you to easily host your static sites without pain. The idea was inspired by surge.sh but gives you full control.

sero Lightning-fast, static web publishing with zero configuration and full control ?? Table Of Contents ?? Table Of Contents ?? Tools ❓ About The Pro

Dmitry Miasnenko 6 Nov 13, 2023
Jumpy is a tool that allows to quickly jump to one of the directory you've visited in the past

Jumpy Jumpy is a tool that allows to quickly jump to one of the directory you've visited in the past. It is heavily inspired by Zoxide but is more lig

Clément Nerma 2 Oct 3, 2022
fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd

fas fas stands for Find all stuff and it's a rust app that simplify the find command and allow you to easily search everything you need. Note: current

M4jrT0m 1 Dec 24, 2021
Command line tool to extract various data from Blender .blend files

blendtool Command line tool to extract various data from Blender .blend files. Currently supports dumping Eevee irradiance volumes to .dds, new featur

null 2 Sep 26, 2021
apkeep - A command-line tool for downloading APK files from various sources

apkeep - A command-line tool for downloading APK files from various sources Installation Precompiled binaries for apkeep on various platforms can be d

Electronic Frontier Foundation 561 Dec 29, 2022
FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config.

Connect quickly to your services ?? FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config. Instal

Julien 85 Dec 14, 2022