Forge Home


7,187 latest version

2.8 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 1.0.3 (latest)
  • 1.0.2
  • 1.0.1
  • 1.0.0
  • 0.0.6
  • 0.0.5
  • 0.0.4
  • 0.0.3
  • 0.0.2
  • 0.0.1
released Aug 25th 2017
This version is compatible with:
  • Puppet Enterprise >=3.8.3 <4.0.0
  • Puppet >=3.8.3 <4.0.0

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'mdelaney-xcode', '1.0.3'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add mdelaney-xcode
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install mdelaney-xcode --version 1.0.3

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



mdelaney/xcode — version 1.0.3 Aug 25th 2017


Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with xcode
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module


This module helps you manage your installed versions of Xcode on your Mac OS X system.

Module Description

If applicable, this section should have a brief description of the technology the module integrates with and what that integration enables. This section should answer the questions: "What does this module do?" and "Why would I use it?"

If your module has a range of functionality (installation, configuration, management, etc.) this is the time to mention it.


What xcode affects

This module will help install Xcode by source (dmg, or xip) into your Mac OS X Applications directory

Setup Requirements

No special configuration needed

Beginning with xcode


To use the module simply the Xcode module, the invoke the 'xcode::instance' define with the versions of Xcode you'd like to have installed.

include xcode

xcode::instance {
    'Xcode v7.1.1':
        ensure => present,
        source => '',

By default, this module will not accept the EULA for Xcode. However, if you pass in the parameter 'eula' as 'accept', we will accept the EULA for Xcode requiring no manual intervention.

If the value of 'eula' is not 'accept', then the EULA will be left as is.

include xcode

xcode::instance {
  'Xcode v7.1.1':
    ensure => present,
    source => '',
    eula   => 'accept',

By default, this module will 'xcode-select' the newly installed Xcode. If you do not want this to happen set the parameter 'selected' to 'no'.

include xcode

xcode::instance {
  'Xcode v7.1.1':
    ensure   => present,
    source   => '',
    selected => 'no',


A new facter 'xcode_versions' will list an array of hash that contain the installed Xcode versions. The hash is in the form of: {build: <number>, version: <string>}

For example:

        version: '7.1.1',
        build: '7B1005'


This module doesn't enforce Xocde to OS X version compatibility. If you install an Xcode version, the onus is on you to ensure that version of Xcode works with the version of Mac OS X you've installed it on.


Since your module is awesome, other users will want to play with it. Let them know what the ground rules for contributing are.

Release Notes

Version 1.0.3

  • Fixed boolean logic with eula and selected

Version 1.0.2

  • Fixed Changelog
  • Fixed Puppet module ignore file list

Version 1.0.1

  • Fixed README syntax

Version 1.0.0

  • Version matcher/extractor updated to match Xcode package published by Apple

Breaking Changes

* xcode::instance param 'source_url' renamed to 'source'
* xcode::instance param 'selected' defaulted to 'no'

Version 0.1.0

  • Minor bug fixes
  • Support for Puppet 4.x

(Thanks to @steveames for the changes)

Version 0.0.1

This is the initial release