vz-generator
1.1.0-alpha.1
See the version list below for details.
dotnet tool install --global vz-generator --version 1.1.0-alpha.1
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local vz-generator --version 1.1.0-alpha.1
#tool dotnet:?package=vz-generator&version=1.1.0-alpha.1&prerelease
nuke :add-package vz-generator --version 1.1.0-alpha.1
vz-generator
Command Line Tool (CLI) for generate files.
This command is built following dotnet core global tools.
Install
dotnet tool install -g vz-generator
Usage
init to load settings and sample templates
vz init
sample names:
vz init --list-samples
only load specific sample:
vz init --with-sample abp --with-sample vue.pinia
After init, please see options in .vz/generate.settings.json
Settings
TODO syntax liquid help
TODO tpl path to output path TODO file to file TODO file to folder TODO folder to folder
Template Syntax
The basic liquid syntax and builtin functions follow Scriban.
Notice
As name of paths or files not allowed the char '|', so by convention, we use '___' instead of '|'.
Extended naming functions
{{'nameIt'|pascal_case}} => NameIt
{{'NameIt'|camel_case}} => nameIt
{{'NameIt'|kebab_case}} => name-it
{{'NameIt'|snake_case}} => name_it
{{'person'|pluralize}} => people
{{'people'|singularize}} => person
Generate any files with subpaths as you want
vz g
By default, g(generate) subcommand will ask what option you want to run.
You also can use -p <your option in .vz/generate.settings.json>
to provide answer
vz g -p 'Create Abp'
It will continue to ask you for some other setting which not store in .vz/generate.settings.json
, such as the value of the variables. Also, can be provided as below:
vz g -p 'Create Abp' --var project=MyCompany.MyProject --var entity=User
vscode setup
vz init
will create .vscode/settings.json
to associate .vz/generate.settings.schema.json
with .vz/generate.settings.json
. if .vscode/settings.json
is already exists, it will not override it, and you should update the file yourself with the content it will show you.
Just do what you want.
Be free to modify the file .vz/generate.settings.json
, vz g
will search the templates as you specified, load variables as you declared, and output the generated files to where you specified.
Even vz g -c <file path to your own settings.json>
can override the default path to generate.settings.json
, but the content of it should match the schema as .vz/generate.settings.schema.json
stored.
Follow the Usage vz g -h
.
Contribute
Be FREE to submit (PRs) your own templates as default samples (for any languages any scenarios) which may helpful to others.
Setup Git Hook to format commit msg
Auto tag and generate changelog.md by commit-and-tag-version
conventional commits
./set-git-hook.sh
npm i -g commit-and-tag-version # https://github.com/absolute-version/commit-and-tag-version#bumpfiles-packagefiles-and-updaters
commit-and-tag-version # --frist-release
Develop on MacOS
IDE: VS Code
DEBUG mode will use .vzx
instead of .vz
- For DEBUG SubCommand
init
:- should check
"args"
in.vscode/launch.json
- should check
dependsOn
ofbuild
task in.vscode/tasks.json
, before build should runclean .vzx
andzip samples
- should check
- For DEBUG SubCommand
g
:- should check
"args"
in.vscode/launch.json
, and strings in it will treated as tokens (whitespace will not parsed). - should commented out the line
dependsOn
ofbuild
task in.vscode/tasks.json
- should check
All things work well.
Develop on windows
IDE: VS Code
DEBUG mode will use .vzx
instead of .vz
- For DEBUG SubCommand
init
:- should check
"args"
in.vscode/launch.json
- should check
dependsOn
ofbuild
task in.vscode/tasks.json
, before build should runclean .vzx
andzip samples
- the commands in task
clean .vzx
should be change to powershellRemove-Item
or sth works in the specific shell. - the commands in task
zip samples
should be change to powershellCompress-Archive
or sth works in the specific shell.
- should check
- For DEBUG SubCommand
g
:- should check
"args"
in.vscode/launch.json
, and strings in it will treated as tokens (whitespace will not parsed). - should commented out the line
dependsOn
ofbuild
task in.vscode/tasks.json
- should check
resgen
maybe problem on windows when develop with pure dotnet core with vs code, but visual studio should work (not confrim).
Template Development
the -w
option of subommand g
, will watch the folder which template files belong to, and regenerate the output in time. It facilitates the development of templates.
vz g -w
It will not watch the setting file, or ask you for any options or inputs again (only watch templates).
In watch
mode, output always override exists files.
MIT
References
UseCases like codeBelt/generate-template-files, but here we got Liquid syntax for template files and paths.
Liquid scriban
Naming jquense/StringUtils
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
This package has no dependencies.
Version | Downloads | Last updated |
---|---|---|
2.1.0 | 284 | 3/22/2024 |
2.0.0 | 3,028 | 11/22/2023 |
1.2.0 | 150 | 11/22/2023 |
1.1.0-alpha.1 | 208 | 11/16/2023 |
0.2.8 | 172 | 8/1/2023 |
0.2.7 | 171 | 8/1/2023 |
0.2.6 | 150 | 7/31/2023 |
0.2.5 | 184 | 7/28/2023 |
0.2.4 | 165 | 7/27/2023 |
0.2.3 | 192 | 7/27/2023 |
0.2.2 | 167 | 7/25/2023 |
0.2.1 | 173 | 7/24/2023 |
0.2.0 | 179 | 7/24/2023 |
0.1.1 | 154 | 7/21/2023 |
0.1.0 | 166 | 7/21/2023 |
v0.2.7 add file filter options for rename subcommand; add process bar for rename;
v0.2.6 add rename subcommand;
v0.2.5 add gitlab sample; k8s sample add init website option;
v0.2.4 TemplateVariableType.YamlFile support;
v0.2.3 add sample k8s;bugfix:output to folder get access denied;
v0.2.2 finish sample swagger2api。