This plugin was mainly created for my personal use.
I was getting bored of always creating manually:
- my directories structure (
mkdir -p manifests/profile/myserver/mysomething) - my puppet files header (
class mymodule::profile::myserver::mysomething::myclass)
and I didn't want to leave my vi instance.
If you don't have a preferred installation method, one option is to install pathogen.vim, and then copy and paste:
cd ~/.vim/bundle
git clone https://github.com/riton/vim-puppetnewfile.git
This plugin expects that you're working from your module basedir (the one containing the manifests, lib, functions directories).
The directory name is used to extract the module name.
For instance, if your current working directory is /home/myuser/dev/puppet/mymodule, the module name that will be extracted will be mymodule.
This plugin also supports (for my personal use) the fact that module directories can end with a .git. So /home/myuser/dev/puppet/mymodule.git will also extract the module name mymodule as expected.
$ mkdir /tmp/test-vim-puppetnewfile && cd /tmp/test-vim-puppetnewfile
Create a dummy directory as if it was our puppet module basedir and chdir() to this directory
$ mkdir mymodule && cd mymodule
Let's simulate puppet module development and create a resource file
$ vim manifests/config/main.pp
The plugin will pre-fill the file with the following content
#
class mymodule::config::main(
) inherits ::mymodule
{
}
# vim: ft=puppetand create the directories manifests and manifests/config for you.
Disable auto-mkdir
let g:puppetnewfile_auto_create_dirs=0
Where to find templates files
let g:puppetnewfile_templates="/home/user/.vim/templates"
You must have a class.pp and function.pp file in this directory.
Those will be used to create new files.
Each instance of __RESOURCENAME__ and __MODULENAME__ will be replaced accordingly.
Directory prefix to prune to find module name from workdir
let g:puppetnewfile_prune_dir_prefix = [ 'module-', 'puppet-' ]
Remove module- or puppet- from current directory name to extract module name.