-
Nilesh Patra authoredfa8a9e4c
easygen
The easy to use universal code/text generator
easygen
is tojson
whatxslt
is toxml
, but much more powerful and versatile.
easygen
has been such a great help to us, making so many mundane tasks easier (and fun) to do.
TOC
- easygen - Easy to use universal code/text generator
- Usage
- Details
- Download/install binaries
- Install Source
- Author
- Contributors
easygen - Easy to use universal code/text generator
Command easygen
is an easy to use universal code/text generator.
It can be used as a text or html generator for arbitrary purposes with arbitrary data and templates. It is a good GSL replacement, as it
- is more easy to define driving data, in form of YML instead of XML
- has more powerful template engine that based on Go template. You can also write your own function in Go to customize your template.
- there are lots of transformation support functions builtin inside it, check out the full list with sample usages and results here.
- apart from the above sample usages, it has extensive documentations like this. Check out the wiki for the full list.
You can even use easygen as a generic Go template testing tool using the -ts
commandline option, and much more.
Note this document is for easygen
versions 4.0+. For historic versions check out the Different Versions section.
Usage
$ easygen
easygen version 5.3.0
Usage:
easygen [flags] template_name [data_filename [data_filename...]]
Flags:
-debug level
debugging level
-ej extension
extension of json file (default ".json")
-et extension
extension of template file (default ".tmpl")
-ey extension
extension of yaml file (default ".yaml")
-ts string
template string (in text)
template_name: The name for the template file.
- Can have the extension (specified by -et) or without it.
- Can include the path as well.
- Can be a comma-separated list giving many template files, in which case
at least one data_filename must be given.
data_filename(s): The name for the .yaml or .json data.
- If omitted derive from the template_name.
- Can have the extension or without it. If withot extension,
will try the .yaml file first then .json
- Can include the path as well.
- Can have more than one data files given on cli, separated by spaces,
in which case multiple outputs will be produced based on the inputs.
- Can be a comma-separated list giving many data files, in which case
data will be merged together as if provided from a single file.
- If there is a single data_filename, and it is "-",
then read the data (.yaml or .json format) from stdin.
Flag defaults can be overridden by corresponding environment variable, e.g.:
EASYGEN_EY=.yml EASYGEN_ET=.tpl easygen ...
Details
It can be used as a code generator, for example, command line parameter handling code generator, or anything that is structurally repetitive, like the following:
- Introduction to easygen and its philosophy
- What is the "XSLT" equivalent for JSON? Here is the new answer
- Transforming json data with easygen
- Easygen is now coding itself
- Showcasing the power of easygen with ffcvt
- Easygen for HTML mock-up
- Moving beyond code-gen and mock-up, using easygen in real life creating GPT partitions
Ready to get started? Then check out Getting Started to start building your way to turn your data into any form, any way you want.
Install Debian/Ubuntu package
sudo apt install -y easygen
Download/install binaries
- The latest binary executables are available as the result of the Continuous-Integration (CI) process.
- I.e., they are built automatically right from the source code at every git release by GitHub Actions.
- There are two ways to get/install such binary executables
- Using the binary executables directly, or
- Using packages for your distro
The binary executables
- The latest binary executables are directly available under
https://github.com/go-easygen/easygen/releases/latest - Pick & choose the one that suits your OS and its architecture. E.g., for Linux, it would be the
easygen_verxx_linux_amd64.tar.gz
file. - Available OS for binary executables are
- Linux
- Mac OS (darwin)
- Windows
- If your OS and its architecture is not available in the download list, please let me know and I'll add it.
- The manual installation is just to unpack it and move/copy the binary executable to somewhere in
PATH
. For example,
tar -xvf easygen_*_linux_amd64.tar.gz
sudo mv -v easygen_*_linux_amd64/easygen /usr/local/bin/
rmdir -v easygen_*_linux_amd64
Distro package
The repo setup instruction url has been given above. For example, for Debian --
Debian package
curl -1sLf \
'https://dl.cloudsmith.io/public/suntong/repo/setup.deb.sh' \
| sudo -E bash
# That's it. You then can do your normal operations, like
sudo apt update
apt-cache policy easygen
sudo apt install -y easygen
Install Source
To install the source code instead:
go install github.com/go-easygen/easygen@latest
Author
Powered by WireFrame
the one-stop wire-framing solution for Go cli based projects, from init to deploy.
✨
Contributors Thanks goes to these wonderful people (emoji key):
suntong |
Gerrit Renker |
Benjamin Ruston |
sanjaymsh |
Anthony Fok |
Deleted user |
Zbigniew Romanowski |
This project follows the all-contributors specification. Contributions of any kind welcome!