Puppet module to configure Vundle.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
manifests
spec
templates
Gemfile
LICENSE
README.md
Rakefile
metadata.json

README.md

puppet-vundle

Table of Contents

  1. Description
  2. Setup - The basics of getting started with vundle
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Contribute - Guide for contributing to the module

Description

This is a module designed to configure and install Vundle, the plug-in manager for Vim. It has been designed with Linux and Unix systems in mind for Puppet 4+. Separate installations of Vundle for every user are easily handled which gives a great degree of flexibility.

While not required due to the complexity of some of the options Hiera's usage is strongly encouraged.

Setup

Setup Requirements

  • Git
  • Vim
  • Puppet >= 4.0
  • Facter >= 3.0
  • Stdlib module

Beginning with vundle

Getting started with Vundle is as simple as including the module with the name of the user desired:

vundle::installation { 'username': }

Additional options can be attached easily:

vundle::installation { 'username:'
  plugins => [ 'someuser/someplugin', 'otheruser/someplugin'],
}

If using Hiera which is highly recommended you'll end up with this:

puppet code

$vundleusers = lookup('vundleusers', { ‘merge’ => ‘hash’ })
create_resources('vundle::installation', $vundleusers)

hiera.yaml

---
vundleusers:
  user1:
    plugins:
      - 'vundlemaker/vundleplugin'
      - 'vundlemaker2/vundleplugin'

Usage

Vundle is installed and configured on a per-user basis. You're going to want to as a result use the defined type, vundle::installation { 'username': }. To create many, it's recommend to use a hash in Hiera and use a create_resources call to do this, like so: puppet code:

$userList = lookup('vundle-users', { ‘merge’ => ‘hash’ })
create_resources('vundle::installation', $userList)

hiera file:

---
vundle-users:
  'user1':
    plugins:
      - 'vundlemaker3/vim-someplugin'
  'user2':
    path:     '/home/notnormal/user2'
    plugins:
      - 'vundlemaker4/vim-otherplugin'
      - 'L9'

If desired, this plugin can also install Vim easily by setting viminstall => true.

Reference

  • name: used as the username to install Vundle under.
  • path: path to the user's home. Default: /home/${name}
  • plugins: array of strings for Plugin lines in the .vimrc. Default: []
  • viminstall: allows installing Vim directly. Default: false

Limitations

This module has only been tested on Ubuntu systems. It will likely work with others but has not been tested at this time.

Contribute

  • Fork it
  • Create a topic branch
  • Improve/fix
  • Push new topic branch
  • Submit a PR