Commit 557d795770f16415f208585875002563fc179eec

Authored by Jianwei Han
1 parent ebe5a55a9c
Exists in master

Ensure packages are latest

Showing 3 changed files with 7 additions and 3 deletions Inline Diff

# This file manages Puppet module dependencies. 1 1 # This file manages Puppet module dependencies.
# 2 2 #
# It works a lot like Bundler. We provide some core modules by 3 3 # It works a lot like Bundler. We provide some core modules by
# default. This ensures at least the ability to construct a basic 4 4 # default. This ensures at least the ability to construct a basic
# environment. 5 5 # environment.
6 6
# Shortcut for a module from GitHub's boxen organization 7 7 # Shortcut for a module from GitHub's boxen organization
def github(name, *args) 8 8 def github(name, *args)
options ||= if args.last.is_a? Hash 9 9 options ||= if args.last.is_a? Hash
args.last 10 10 args.last
else 11 11 else
{} 12 12 {}
end 13 13 end
14 14
if path = options.delete(:path) 15 15 if path = options.delete(:path)
mod name, :path => path 16 16 mod name, :path => path
else 17 17 else
version = args.first 18 18 version = args.first
options[:repo] ||= "boxen/puppet-#{name}" 19 19 options[:repo] ||= "boxen/puppet-#{name}"
mod name, version, :github_tarball => options[:repo] 20 20 mod name, version, :github_tarball => options[:repo]
end 21 21 end
end 22 22 end
23 23
# Shortcut for a module under development 24 24 # Shortcut for a module under development
def dev(name, *args) 25 25 def dev(name, *args)
mod name, :path => "#{ENV['HOME']}/src/boxen/puppet-#{name}" 26 26 mod name, :path => "#{ENV['HOME']}/src/boxen/puppet-#{name}"
end 27 27 end
28 28
# Includes many of our custom types and providers, as well as global 29 29 # Includes many of our custom types and providers, as well as global
# config. Required. 30 30 # config. Required.
31 31
github "boxen", "3.6.3.rc", :repo => "hanjianwei/puppet-boxen" 32 32 github "boxen", "3.6.3.rc", :repo => "hanjianwei/puppet-boxen"
33 33
# Support for default hiera data in modules 34 34 # Support for default hiera data in modules
35 35
github "module-data", "0.0.3", :repo => "ripienaar/puppet-module-data" 36 36 github "module-data", "0.0.3", :repo => "ripienaar/puppet-module-data"
37 37
# Core modules for a basic development environment. You can replace 38 38 # Core modules for a basic development environment. You can replace
# some/most of these if you want, but it's not recommended. 39 39 # some/most of these if you want, but it's not recommended.
40 40
github "git", "2.5.0" 41 41 github "git", "2.5.0"
github "homebrew", "1.9.5.rc", :repo => "hanjianwei/puppet-homebrew" 42 42 github "homebrew", "1.9.5.rc2", :repo => "hanjianwei/puppet-homebrew"
github "hub", "1.3.0" 43 43 github "hub", "1.3.0"
github "inifile", "1.1.3", :repo => "puppetlabs/puppetlabs-inifile" 44 44 github "inifile", "1.1.3", :repo => "puppetlabs/puppetlabs-inifile"
github "nodejs", "3.8.1" 45 45 github "nodejs", "3.8.1"
github "openssl", "1.0.0" 46 46 github "openssl", "1.0.0"
github "pkgconfig", "1.0.0" 47 47 github "pkgconfig", "1.0.0"
github "repository", "2.3.0" 48 48 github "repository", "2.3.0"
github "ruby", "8.1.2" 49 49 github "ruby", "8.1.2"
GITHUBTARBALL 1 1 GITHUBTARBALL
remote: boxen/puppet-git 2 2 remote: boxen/puppet-git
specs: 3 3 specs:
git (2.5.0) 4 4 git (2.5.0)
5 5
GITHUBTARBALL 6 6 GITHUBTARBALL
remote: boxen/puppet-hub 7 7 remote: boxen/puppet-hub
specs: 8 8 specs:
hub (1.3.0) 9 9 hub (1.3.0)
10 10
GITHUBTARBALL 11 11 GITHUBTARBALL
remote: boxen/puppet-nodejs 12 12 remote: boxen/puppet-nodejs
specs: 13 13 specs:
nodejs (3.8.1) 14 14 nodejs (3.8.1)
15 15
GITHUBTARBALL 16 16 GITHUBTARBALL
remote: boxen/puppet-openssl 17 17 remote: boxen/puppet-openssl
specs: 18 18 specs:
openssl (1.0.0) 19 19 openssl (1.0.0)
20 20
GITHUBTARBALL 21 21 GITHUBTARBALL
remote: boxen/puppet-osx 22 22 remote: boxen/puppet-osx
specs: 23 23 specs:
osx (2.7.0) 24 24 osx (2.7.0)
25 25
GITHUBTARBALL 26 26 GITHUBTARBALL
remote: boxen/puppet-pkgconfig 27 27 remote: boxen/puppet-pkgconfig
specs: 28 28 specs:
pkgconfig (1.0.0) 29 29 pkgconfig (1.0.0)
30 30
GITHUBTARBALL 31 31 GITHUBTARBALL
remote: boxen/puppet-repository 32 32 remote: boxen/puppet-repository
specs: 33 33 specs:
repository (2.3.0) 34 34 repository (2.3.0)
35 35
GITHUBTARBALL 36 36 GITHUBTARBALL
remote: boxen/puppet-ruby 37 37 remote: boxen/puppet-ruby
specs: 38 38 specs:
ruby (8.1.2) 39 39 ruby (8.1.2)
40 40
GITHUBTARBALL 41 41 GITHUBTARBALL
remote: boxen/puppet-sudo 42 42 remote: boxen/puppet-sudo
specs: 43 43 specs:
sudo (1.0.0) 44 44 sudo (1.0.0)
45 45
GITHUBTARBALL 46 46 GITHUBTARBALL
remote: boxen/puppet-xquartz 47 47 remote: boxen/puppet-xquartz
specs: 48 48 specs:
xquartz (1.2.0) 49 49 xquartz (1.2.0)
50 50
GITHUBTARBALL 51 51 GITHUBTARBALL
remote: hanjianwei/puppet-boxen 52 52 remote: hanjianwei/puppet-boxen
specs: 53 53 specs:
boxen (3.6.3.rc) 54 54 boxen (3.6.3.rc)
55 55
GITHUBTARBALL 56 56 GITHUBTARBALL
remote: hanjianwei/puppet-brewcask 57 57 remote: hanjianwei/puppet-brewcask
specs: 58 58 specs:
brewcask (0.0.4.rc2) 59 59 brewcask (0.0.4.rc2)
60 60
GITHUBTARBALL 61 61 GITHUBTARBALL
remote: hanjianwei/puppet-dotfiles 62 62 remote: hanjianwei/puppet-dotfiles
specs: 63 63 specs:
dotfiles (0.0.9) 64 64 dotfiles (0.0.9)
65 65
GITHUBTARBALL 66 66 GITHUBTARBALL
remote: hanjianwei/puppet-homebrew 67 67 remote: hanjianwei/puppet-homebrew
specs: 68 68 specs:
homebrew (1.9.5.rc) 69 69 homebrew (1.9.5.rc2)
70 70
GITHUBTARBALL 71 71 GITHUBTARBALL
remote: puppetlabs/puppetlabs-inifile 72 72 remote: puppetlabs/puppetlabs-inifile
specs: 73 73 specs:
inifile (1.1.3) 74 74 inifile (1.1.3)
75 75
GITHUBTARBALL 76 76 GITHUBTARBALL
remote: puppetlabs/puppetlabs-stdlib 77 77 remote: puppetlabs/puppetlabs-stdlib
specs: 78 78 specs:
stdlib (4.3.2) 79 79 stdlib (4.3.2)
80 80
GITHUBTARBALL 81 81 GITHUBTARBALL
remote: ripienaar/puppet-module-data 82 82 remote: ripienaar/puppet-module-data
specs: 83 83 specs:
module-data (0.0.3) 84 84 module-data (0.0.3)
85 85
DEPENDENCIES 86 86 DEPENDENCIES
boxen (= 3.6.3.rc) 87 87 boxen (= 3.6.3.rc)
brewcask (= 0.0.4.rc2) 88 88 brewcask (= 0.0.4.rc2)
modules/people/manifests/hanjianwei/applications.pp
class people::hanjianwei::applications { 1 1 class people::hanjianwei::applications {
2 2
3 Package {
4 ensure => 'latest'
5 }
6
# Declare all Homebrew packages 3 7 # Declare all Homebrew packages
package { ['ack', 4 8 package { ['ack',
'qt5', 5 9 'qt5',
'reattach-to-user-namespace', 6 10 'reattach-to-user-namespace',
'tmux', 7 11 'tmux',
'wget']: 8 12 'wget']:
} 9 13 }
10 14
package { 'vim': 11 15 package { 'vim':
install_options => ['--override-system-vi'], 12 16 install_options => ['--override-system-vi'],
} 13 17 }
14 18
homebrew::tap { 'homebrew/science': } 15 19 homebrew::tap { 'homebrew/science': }
-> 16 20 ->
package { 'opencv': } 17 21 package { 'opencv': }
18 22
# Declare all Homebrew Cask packages 19 23 # Declare all Homebrew Cask packages
include brewcask 20 24 include brewcask
21 25
package { ['acorn', 22 26 package { ['acorn',
'alfred', 23 27 'alfred',
'atom', 24 28 'atom',
'bettertouchtool', 25 29 'bettertouchtool',
'caffeine', 26 30 'caffeine',
'cleanmymac', 27 31 'cleanmymac',
'dropbox', 28 32 'dropbox',
'evernote', 29 33 'evernote',
'fantastical', 30 34 'fantastical',
'firefox', 31 35 'firefox',
'google-chrome', 32 36 'google-chrome',
'hazel', 33 37 'hazel',
'iterm2', 34 38 'iterm2',
'karabiner', 35 39 'karabiner',
'keyboard-maestro', 36 40 'keyboard-maestro',
'mactex', 37 41 'mactex',
'omnifocus', 38 42 'omnifocus',
'onepassword', 39 43 'onepassword',
'parallels', 40 44 'parallels',
'pycharm-ce', 41 45 'pycharm-ce',
'scapple', 42 46 'scapple',
'screenflow', 43 47 'screenflow',
'scrivener', 44 48 'scrivener',
'seil', 45 49 'seil',
'shiori', 46 50 'shiori',
'trim-enabler', 47 51 'trim-enabler',
'qq', 48 52 'qq',
'qt-creator', 49 53 'qt-creator',
'vagrant', 50 54 'vagrant',
'virtualbox', 51 55 'virtualbox',
'welly', 52 56 'welly',
'xmind']: 53 57 'xmind']:
provider => 'brewcask' 54 58 provider => 'brewcask'
} 55 59 }
56 60
# Taps 57 61 # Taps
homebrew::tap { 'hanjianwei/apps': } 58 62 homebrew::tap { 'hanjianwei/apps': }
-> 59 63 ->
package { 'squirrel': 60 64 package { 'squirrel':
provider => 'brewcask' 61 65 provider => 'brewcask'
} 62 66 }
63 67
homebrew::tap { 'caskroom/fonts': } 64 68 homebrew::tap { 'caskroom/fonts': }
-> 65 69 ->
package { ['font-anonymous-pro', 66 70 package { ['font-anonymous-pro',
'font-dejavu-sans', 67 71 'font-dejavu-sans',
'font-dejavu-sans-mono-for-powerline', 68 72 'font-dejavu-sans-mono-for-powerline',
'font-inconsolata-dz-for-powerline', 69 73 'font-inconsolata-dz-for-powerline',
'font-inconsolata-for-powerline', 70 74 'font-inconsolata-for-powerline',
'font-noto-sans', 71 75 'font-noto-sans',
'font-noto-sans-s-chinese', 72 76 'font-noto-sans-s-chinese',
'font-noto-sans-t-chinese', 73 77 'font-noto-sans-t-chinese',
'font-noto-sans-japanese', 74 78 'font-noto-sans-japanese',
'font-noto-sans-korean', 75 79 'font-noto-sans-korean',
'font-noto-serif', 76 80 'font-noto-serif',
'font-roboto', 77 81 'font-roboto',
'font-sauce-code-powerline', 78 82 'font-sauce-code-powerline',
'font-source-code-pro', 79 83 'font-source-code-pro',
'font-source-sans-pro', 80 84 'font-source-sans-pro',
'font-source-serif-pro', 81 85 'font-source-serif-pro',
'font-terminus', 82 86 'font-terminus',
'font-ubuntu-mono-powerline']: 83 87 'font-ubuntu-mono-powerline']:
provider => 'brewcask' 84 88 provider => 'brewcask'
} 85 89 }
86 90
homebrew::tap { 'caskroom/versions': } 87 91 homebrew::tap { 'caskroom/versions': }
-> 88 92 ->
package { 'intellij-idea-ultimate12': 89 93 package { 'intellij-idea-ultimate12':
provider => 'brewcask' 90 94 provider => 'brewcask'
} 91 95 }
92 96
homebrew::tap { 'railwaycat/emacsmacport': } 93 97 homebrew::tap { 'railwaycat/emacsmacport': }
-> 94 98 ->
package { 'emacs-mac': 95 99 package { 'emacs-mac':
provider => 'brewcask' 96 100 provider => 'brewcask'
} 97 101 }
98 102
# Apps configuration 99 103 # Apps configuration
Package <| |> -> Dotfiles::Deploy <| |> 100 104 Package <| |> -> Dotfiles::Deploy <| |>
101 105
osx_chsh { $boxen_user: 102 106 osx_chsh { $boxen_user:
shell => '/bin/zsh' 103 107 shell => '/bin/zsh'
} 104 108 }
105 109
dotfiles::deploy { ['atom', 106 110 dotfiles::deploy { ['atom',
'bettertouchtool', 107 111 'bettertouchtool',
'emacs', 108 112 'emacs',
'git', 109 113 'git',