npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tinpig

v1.4.4

Published

Create projects based on your own custom templates. Supports token replacement of content and file names at project creation time.

Downloads

30

Readme

tinpig Project Creator

tinpig is a simple command line utility for quickly creating projects of any kind. Projects are created from templates which are collections of folders and files. The folders and files can contain special tokens that can be replaced with other values when the project is created. You can use an existing temple as-is, modify a template, or create your own from scratch.

Requirements

You'll need npm and an updated version of nodejs. Your version of nodejs should be 8.5.0 or higher, for the file copying functionality that was introduced at that point.

Installation

npm install -g tinpig

Use

To create a new project, simply type tinpig. This will display a list of available templates for you to choose from.

screenshot

When you choose a template, tinpig will ask you for a path for your new project. Enter a directory name to create a project with that name in the current directory, or an absolute or relative path to some other location.

If the template includes any replaceable tokens, you will be prompted to provide values for each token. Some tokens may have default values that will be displayed after the name of the token. Press enter to accept the default value, or type an alternate value. Some tokens may be marked as required and others may restrict certain characters to ensure they work correctly as file paths. You'll be notified if your replacement needs correction.

screenshot

tinpig will then create the project at the specified location, performing all of the token replacment. And you are done, ready to use your new project.

Command line use

If you know the name of the template you want to use and/or the location at which you want to create your project, you can specify these values on the command line.

tinpig --template HTML --path my_project`

or, more concisely:

tinpig -t HTML -p my_project

You can specify one, both, or neither of these values. If you only specify the template you'll be prompted for the path. If you only specify the path, you'll be prompted for a template.

If you specify the path and template, you'll still prompted to enter values for any tokens that may be included in the template.

Also see "External template directories" below for one more command line option.

Configuration

After you install tinpig, run:

tinpig --configure

This will prompt you for a number of values:

  • user name
  • user email
  • custom templates dir
  • invalid path characters

The user name and email values can be used by templates to automatically insert your name or email into a project. Feel free to leave these at their default values. You can always edit them later if a project uses them.

By default, tinpig stores its templates in ~/.config/tinpig/templates/. Setting a custom templates dir allows you to store the templates in another location of your choice. More on that later in this doc.

tinpig templates can contain dynamic path and file names. If these are marked as paths, tinpig will make sure that the user enters a path name that will not cause problems. The set of invalid path characters listed here are pretty sensible, but you can customize them if you want.

If you ever want to reset the four config values described above, type:

tinpig reset

This will reset them all to their default values.

All of this data is stored in ~/.config/tinpig/config. You can edit this file manually as well.

Existing content

If the project path you specify already holds a single existing file, you cannot create a project there, obviously.

If the project path is an existing directory, you will be warned of this fact. tinpig will never overwrite or alter existing content in a directory. If the template is attempting to create a file that has the same name as an existing file in that directory, that file will silently fail. Any other non-conflicting files should copy over just fine though. You should be aware of what files the template is creating and know if they will conflict with existing content.

Help

Type tinpig -h or tinpig --help to see a list of options.

Type tinpig -l or tinpig --list to see a list of available templates with descriptions.

Adding new templates

Additional templates will be posted at https://github.com/bit101/tinpig-templates .

Check out or download that repository and copy any templates you want into your local templates directory (~/.config/tinpig/templates) or custom templates dir if you set one. Again, feel free to customize them to make them fit your own use.

Creating new templates

There is a template creation guide on the wiki page. This details the process and all of the elements that go into making a template.

At its simplest, a template is simply a folder containing some files. But there are other features that can make templates more powerful.

If you create a nice template and want to share, submit it as a pull request at https://github.com/bit101/tinpig-templates .

Custom template directories

You can choose to store your templates in a directory other than ~/.config/tinpig/templates. There are two ways to do this.

Changing the path permanently

Run tinpig configure or edit the file ~/.config/tinpig/config and change the templatesDir value to the path you want to store your templates. The next time tinpig starts, it will look there rather than the default location.

Note, if you specify an empty directory, tinpig will copy the default sample templates there the first time it runs.

If you specify a directory that doesn't exist, it will be created and filled with the default sample templates.

Changing the path temporarily

Use the -d or --directory parameter on the command line to point to the directory you want to use. e.g.:

tinpig -d ~/my_templates

You will be asked to choose a template from the ones available in that directory. Note that this directory is only used for this particular run of tinpig. It does not change the values stored in tinpig's configuration.

Note that this method also works if you want to specify a template on the command line. Say ~/my_templates contains a template named GoProject. You could say:

tinpig -d ~/my_templates -t GoProject

You can also list templates from a custom directory:

tinpig -d ~/my_templates -l

This will list all the templates in that location.