applications.pp 2.87 KB
class people::hanjianwei::applications inherits people::hanjianwei::config {
  notify { "${homebrew::config::cachedir}": }

  # Declare all Homebrew packages
  $brew_pkgs = [
    'wget',
    'qt5',
    'tmux',
    'vim'
  ]
  package { $brew_pkgs: }

  homebrew::tap { 'homebrew/science': }
  ->
  package { 'opencv': }

  # Declare all Hombrew Cask packages
  include brewcask

  $cask_pkgs = [
    'acorn',
    'alfred',
    'atom',
    'bettertouchtool',
    'caffeine',
    'cleanmymac',
    'dropbox',
    'evernote',
    'fantastical',
    'firefox',
    'google-chrome',
    'hazel',
    'iterm2',
    'keyboard-maestro',
    'keyremap4macbook',
    'mactex',
    'omnifocus',
    'onepassword',
    'parallels',
    'pycharm-ce',
    'scapple',
    'screenflow',
    'scrivener',
    'seil',
    'shiori',
    'qq',
    'qt-creator',
    'vagrant',
    'virtualbox',
    'welly',
    'xmind'
  ]

  package { $cask_pkgs:
    provider => 'brewcask'
  }

  # Taps
  homebrew::tap { 'caskroom/fonts': }
  ->
  package { 'font-inconsolata-for-powerline':
    provider => 'brewcask'
  }

  homebrew::tap { 'caskroom/versions': }
  ->
  package { 'intellij-idea-ultimate12':
    provider => 'brewcask'
  }

  homebrew::tap { 'railwaycat/emacsmacport': }
  ->
  package { 'emacs-mac':
    provider => 'brewcask'
  }

  # tmux
  Package['tmux']
  ->
  file { "${home}/.tmux.conf":
    ensure  => link,
    target  => "${dotfiles}/tmux/tmux.conf",
    require => Repository["${dotfiles}"]
  }

  # Vim
  Package['vim']
  ->
  file { "${home}/.vimrc":
    ensure  => link,
    target  => "${dotfiles}/Vim/vimrc",
    require => Repository["${dotfiles}"]
  }
  ->
  file { ["${home}/.vim", "${home}/.vim/bundle"]:
    ensure => directory
  }
  ->
  repository { "${home}/.vim/bundle/Vundle.vim":
    source => 'gmarik/Vundle.vim'
  }
  ->
  exec { 'vim +BundleInstall +BundleClean +qall': }


  # Emacs mac port
  Package['emacs-mac']
  ->
  file { "${home}/.emacs.d":
    ensure => directory
  }
  ->
  file { "${home}/.emacs.d/init.el":
    ensure  => link,
    target  => "${dotfiles}/Emacs/init.el",
    require => Repository["${dotfiles}"]
  }
  ->
  repository { "${home}/.emacs.d/snippets":
    source => 'hanjianwei/yasnippet-snippets'
  }

  # Firefox
  Package['firefox']
  ->
  file { "${home}/.vimperatorrc":
    target  => "${dotfiles}/Vimperator/vimperatorrc",
    require => Repository["${dotfiles}"]
  }

  # KeyRemap4Macbook
  # include keyremap4macbook
  # include keyremap4macbook::login_item
  # keyremap4macbook::remap { 'private.f19_to_hyper': }
  # keyremap4macbook::private_xml { 'private.xml':
  #   source  => "${dotfiles}/KeyRemap4MacBook/private.xml",
  #   require => Repository["${dotfiles}"]
  # }

  # Seil
  #include seil
  #include seil::login_item
  #seil::bind { 'keyboard bindings':
    #mappings => { 'capslock' => 80 }
  #}

  # Vagrant
  #include vagrant
  #vagrant::plugin { 'vagrant-vbguest': }
}