Cookie is a free and open source template-based file generator that speeds up the process of writing scripts, Makefiles, LaTeX documents, and other one-off files.
Cookie is similar to cookiecutter, a command-line utility that creates projects from project templates (stylistically referred to as “cookiecutters“) in any markup format or programming language. But unlike cookiecutter, Cookie creates pages from file templates.
The templates are stored in the ~/.cookiecutters
directory or the directory specified by $COOKIE_DIR
. You can see examples of the main developer’s templates here.
Features in Cookie
- Free and open source with source code available on GitHub.
- Cross-platform: available on Windows, GNU/Linux, and macOS.
- Quickly create files from page templates.
- Supports aliases and functions which serve as task and filetype-specific custom initialization commands.
- Variable substitution.
Installation of Cookie in Linux
Root Installation
With root permission all you need to do is clone the project from git and building the app with the following commands:
$ git clone https://github.com/bbugyi200/cookie $ cd cookie $ sudo make install
User Installation
Without root permission you will need to use an alternate bin directory which you would clone the git repo into and then build with the command:
# make DESTDIR=/home/<user>/.local PREFIX= install
Replace <user>
with your username and make sure that the /home/<user>/.local/bin
directory is in your system’s path.
Usage
Usage: cookie [-d] [-D TARGET_DIR] [-f] [-m MODE] [-v] [-x] TEMPLATE [TARGET] cookie -c cookie -e TEMPLATE cookie -h cookie -l [TEMPLATE] cookie -r TEMPLATE Initializes a new file (TARGET) using a predefined template (TEMPLATE). The target file can be a new script, configuration file, markup file, etc.... After the target file has been initialized, it is opened for editing using the system's default editor. Positional Arguments: TARGET The name of the file to initialize. Optional Arguments: -d | --debug Enable debug mode. -c | --config Edit the configuration file. -D DIR | --bin-subdir DIR Initialize TARGET into DIR, which should be a subdirectory of the default bin directory (see the configuration file). -e TEMPLATE | --edit TEMPLATE Add / edit cookie template. -f | --force Force TARGET initialization to be relative to the current directory. This option essentially overrides the ROOT_DIR configuration setting. Enabled by default for non-executable targets. -h | --help View this help message. -l [TEMPLATE] | --list [TEMPLATE] If TEMPLATE is provided, output template contents to STDOUT. Otherwise, list available templates. -m MODE | --mode MODE Sets file mode bits. Accepts any form for MODE that is recognized by the 'chmod' command. -r TEMPLATE | --remove TEMPLATE Delete cookie template. -x Make TARGET executable. Equivalent to '-m +x'. -v | --verbose Enable verbose output.
Using Cookie should come easily to you if you are familiar with Cookiecutter. But if you’re new to either of both tools then you need to go over the guide before delving in.