pont

Crates.iopont
lib.rspont
version0.3.0
sourcesrc
created_at2024-04-25 19:11:29.937602
updated_at2024-09-29 15:37:45.18466
descriptionA project template tool that works with Git repositories and local directories.
homepagehttps://soup.dev/pont
repositoryhttps://github.com/soupdevsolutions/pont
max_upload_size
id1220666
size83,269
soupdev (github:soupdevsolutions:soupdev)

documentation

README

Pont

pont logo

CI crates

Pont is a simple project template generator and loader. You can generate templates and load them from Git repositories or local directories.

Installation

Currently, pont can only be installed using cargo.

cargo install pont

Prerequisites

  • git should be installed and available in your PATH.

Usage

Generate a template

pont new --name <template-name> # to create a new directory

or

pont init # to use the current directory

Build a project from a template

pont build --name <template-name> --from <source>

How does it work?

Pont creates a pont.yaml file when you initialize a new project, which it then consumes during the build process.
A pont.yaml file contains 4 fields:

  • the pont version used for the template (the local pont version should match this).
  • the template's name (which will be replaced by your project name);
  • a list of commands that will be run when the project is built;
  • a list of ignored files (which will not get their name or content replaced).

It is a good idea to always include the .git directory in the ignore list, as attempting to rewrite any of the files inside it might corrupt your Git repository.

pont.yaml example:

version: 0.3.0
name: pont 
commands:
  - echo "Initializing Pont..."
ignore:
  - .git/*
  - *.txt

Example

pont new --name rust_server_template
cd ./rust_server_template

cargo init
cargo add axum tokio serde serde_json

git remote add origin <your-remote-repo>
git add .
git commit -m "Base project"
git push

cd ../
pont build --name cool_rust_app --from <your-remote-repo>
Commit count: 61

cargo fmt