pawnee 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -74,8 +74,33 @@ module Pawnee
74
74
  # === Parameters
75
75
  # packages<Array>:: An array of strings of package names
76
76
  def install_packages(*package_names)
77
+ packages = nil
78
+ as_root do
79
+ exec('apt-get -y update')
80
+ packages = exec("dpkg -l")
81
+ end
82
+
83
+ installed_package_names = []
84
+ packages.split(/\n/).grep(/^ii /).each do |package|
85
+ _, name, version = package.split(/\s+/)
86
+ installed_package_names << name
87
+ end
88
+
89
+ need_to_install_packages = []
90
+
77
91
  package_names.flatten.each do |package_name|
78
- install_package(package_name)
92
+ if installed_package_names.include?(package_name)
93
+ say_status "package already installed", package_name, :blue
94
+ else
95
+ need_to_install_packages << package_name
96
+ end
97
+ end
98
+
99
+ if need_to_install_packages.size > 0
100
+ as_root do
101
+ say_status "installing packages", need_to_install_packages.join(', ')
102
+ exec("apt-get -y install #{need_to_install_packages.join(' ')}")
103
+ end
79
104
  end
80
105
  end
81
106
 
@@ -1,3 +1,3 @@
1
1
  module Pawnee
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pawnee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-16 00:00:00.000000000 Z
12
+ date: 2012-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -307,7 +307,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
307
307
  version: '0'
308
308
  segments:
309
309
  - 0
310
- hash: -3847734814061536168
310
+ hash: 4305242221210104072
311
311
  required_rubygems_version: !ruby/object:Gem::Requirement
312
312
  none: false
313
313
  requirements:
@@ -316,7 +316,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
316
316
  version: '0'
317
317
  segments:
318
318
  - 0
319
- hash: -3847734814061536168
319
+ hash: 4305242221210104072
320
320
  requirements: []
321
321
  rubyforge_project:
322
322
  rubygems_version: 1.8.22