Skip to content

hans00/initial-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

initial-cli

A project initializer.


How to use

from GitHub

initial [github/]<owner>/<slug>[#branch] <project name>

from GitLab

initial gitlab/<owner>/<slug>[#branch] <project name>

from other git repo

initial <git repo url>[#branch] <project name>
// or pre-set short name
initial <short name>/<owner>/<slug>[#branch] <project name>

alias git repo

Edit the configure file before use this.

initial <alias name> <project name>

Configure file

$HOME/.init/config.json

{
    "short_name": {
        "private-git": "https://example.com/{owner}/{slug}.git"
    },
    "alias": {
    	"example": "private-git/owner/template"
    }
}

How create template

Assets file

The asset files will remove after initialized. You can put the option files in it.

The directory name is .init-assets.

Initialize file

File name: .init.js

Inquire uses module who names Inquirer.js.

// you can require: fs, path, glob, rimraf, and other core modules
exports.questions = [
    {} // your questions, see: Inquirer.js
];
exports.preprocess = function (answer, module) {
    // the JS codes
    // you can copy the file from assets
    // module.rm => rimraf.sync
    // module.copy => fs.copySync
}

Template files

All *.* file except .init.js or under .init-assets

All question answer and project_name will pass into the template processor.

Usage

// direct output variable using syntax as %var_name%
title = "%project_name%"
// boolean condition
#if boolVal#
#endif#
#if boolVar eq true#
#endif#
// string condition
#if strVar eq 'value'#
#endif#
#if strVar ne 'value'#
#endif#
// list condition
#if listVar has 'value'#
#endif#