# Common utilities
class utils {
  package { [ 'screen', 'less', 'bzip2', 'openssl', 'lynx', 'wget', 'unzip',
              'nmap', 'telnet', 'tree', 'whois', 'dosfstools', 'dnsutils' ]:
    ensure => installed,
  }

  if !defined(Package['git-core']) {
    package { 'git-core':
      ensure => installed,
    }
  }
}

# Common utilities for physical
class utils::physical {
  package { [ 'nload', 'acpid', 'acpi', 'slurm' ]:
    ensure => installed,
  }
}

# Common utilities for storage
class utils::storage {
  package { 'clamav':
    ensure => installed,
  }
}

# Common utilities for web
class utils::web {
  package { [ 'ffmpeg',  'flvtool2',             'php5-ffmpeg',        'curl',
              'libxml2', 'libxml2-dev',          'libxslt1-dev',       'libmysqlclient-dev',
              'g++',     'libcurl4-openssl-dev', 'apache2-prefork-dev' ]:
    ensure => installed,
  }
}

# Common utilities for personal
class utils::personal {
  package { [ 'awesome',             'alsa-tools-gui',          'mutt',
              'irssi',               'offlineimap',             'wyrd',
              'mp3blaster',          'eterm',                   'epiphany-browser',
              'libpam-mount',        'debhelper',               'fluxbox',
              'gdm',                 'ecryptfs-utils',          'newsbeuter',
              'bitlbee',             'nicotine',                'silc',
              'irssi-plugin-silc',   'conky',                   'rxvt',
              'vim-gtk',             'gobby',                   'bogofilter',
              'gnupg-agent',         'xterm',                   'bash-completion',
              'fetchmail',           'apg',                     'xfonts-terminus',
              'gnumeric',            'alsa-utils',              'sc',
              'procmail',            'msmtp',                   'netpbm',
              'gqview',              'antiword',                'mairix',
              'gitk',                'konqueror',               'mpg123',
              'audacious',           'qjackctl',                'bittorrent',
              'subversion',          'fortunes-br',             'xine-ui',
              'broffice.org',        'cups-client',             'xscreensaver',
              'amarok',              'mc',                      'wodim',
              'genisoimage',         'dvd+rw-tools',            'inkscape',
              'python-stdeb',        'openjdk-6-jre',           'unrar',
              'fakeroot',            'dupload',                 'autotools-dev',
              'dh-make',             'kalarm',                  'makepasswd',
              'pwgen',               'texlive-latex-base',      'texlive-latex-recommended',
              'texlive-latex-extra', 'gawk',                    'fpm2',
              'irssi-scripts',       'links',                   'pandoc',
              'rxvt-unicode',        'recode',                  'twinkle',
              'figlet',              'bittornado',              'encfs',
              'rtorrent',            'p7zip-full',              'signing-party' ]:
    ensure => installed,
  }

  case $operatingsystem {
    debian: { 
      package { [ 'mozilla-firefox-adblock', 'iceweasel', 'sun-java6-jre', 'hplip' ]:
        ensure => installed,
      }
    }
    default: { }
  }

  # Gem packages
  package { 'capistrano':
    ensure   => installed,
    provider => gem,
    require  => Package['rubygems'],
  }

  # Gem packages
  package { 'slideshow':
    ensure   => installed,
    provider => gem,
    require  => Package['rubygems'],
  }

  if !defined(Package['ruby']) {
    package { 'ruby':
      ensure => installed,
    }
  }

  if !defined(Package['rubygems']) {
    package { 'rubygems':
      ensure  => installed,
      require => Package['ruby'],
    }
  }

  if !defined(Package['ruby-dev']) {
    package { 'ruby-dev':
      ensure  => installed,
      require => Package['ruby'],
    }
  }

  # App alternatives
  file { "/etc/alternatives/java":
    ensure => "/usr/lib/jvm/java-6-sun/jre/bin/java",
    owner  => root,
    group  => root,
  }
}

# Common utilities for laptop
class utils::laptop {
  package { [ 'cpufrequtils',  'module-assistant', 'madwifi-source',
              'madwifi-tools', 'wireless-tools',   'wpasupplicant',
              'ekiga',         'gnome',            'revelation',
              'wicd',          'bluez-gnome' ]:
    ensure => installed,
  }
}

# Common utilities for desktop
class utils::desktop {
  package { 'cups':
    ensure => installed,
  }
}