/puppet-hugo

A Puppet module for managing Hugo.

Primary LanguageRuby

puppet-hugo

Build Status

Table of Contents

  1. Description
  2. Setup
  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. Development - Guide for contributing to the module

Description

A Puppet module for managing Hugo) (A static website engine).

This module installs Hugo using pre-built binaries and does not need external package repositories.

Setup

Setup requirements

The hugo module does not automatically create parent directories for the files it manages. Set up any needed directory structures before you start.

What hugo affects

Usage

Only install hugo:

include ::hugo

Install executable generate website out of it:

class {'::hugo':
    sites => {
        '/tmp/test' => {
            'target'  => '/tmp/generated',
            'version' => 'someversion'
        }
    }
}

Reference

Class: hugo

class {'::hugo':
    manage_dependencies    => true,
    dependencies_ensure    => 'latest',
    dependencies           => ['tar', 'git'],
    manage_package         => true,
    package_ensure         => 'present',
    installation_directory => '/usr/local/bin',
    version                => '0.20.7',
    owner                  => 'root',
    group                  => 'root',
    mode                   => 'ug=rw,o=r,a=x',
    sites                  => {
        'test.org' => {
            'source' => '/tmp/test',
            'target' => '/tmp/test.org',
            'version' => 'aaa'
        },
        'test2.org' => {
            'source' => '/tmp/test',
            'target' => '/tmp/test2.org',
            'version' => 'bbb'
        }
    },
    compile_defaults       => {
        'hugo_executable' => '/usr/local/bin/hugo',
        'refreshonly'     => true
    }
}

Class: hugo::packages

class {'::hugo::packages':
    manage_dependencies => true,
    dependencies_ensure => 'latest',
    dependencies        => ['git', 'tar']
}

Class: hugo::install

class {'::hugo::install':
    manage_package         => true,
    package_ensure         => 'present',
    installation_directory => '/usr/local/bin',
    version                => '0.20.7',
    owner                  => 'root',
    group                  => 'root',
    mode                   => 'ug=rw,o=r,a=x'
}

Resource: hugo::resource::compile

hugo::resource::compile {'human.test.org':
    target               => '/tmp/human.test.org',
    version              => 'someversion',
    source               => '/tmp/test',
    refreshonly          => true,
    additional_arguments => '',
    hugo_executable      => '/usr/local/bin/hugo'
}

Limitations

See metadata.json for supported platforms.

Development

Running tests

gem install bundler
bundle install --path vendor
bundle exec rake test

Contributing

Please make sure that test cases, syntax and documentation checks are passing.