automateit 0.71219 → 0.71220

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.
data.tar.gz.sig CHANGED
Binary file
@@ -1,8 +1,16 @@
1
+ 0.71220:
2
+ Date: Thu, 20 Dec 2007 23:36:05 -0800
3
+ Desc:
4
+ - (+) Added PackageManager::CPAN for managing Perl packages. Thanks go out to Jesse Hallett for assisting me with research on how to use the CPAN APIs.
5
+ - Fixed PackageManager#install when called with a single Symbol argument.
6
+ - Added PackageManager::DPKG for local installation of .deb packages. Added logic to help it install a hash of package names to file names. Added spec to validate this.
7
+ - Refactored PackageManager::APT to defer to PackageManager::DPKG's logic when possible.
8
+
1
9
  0.71219:
2
10
  Date: Wed, 19 Dec 2007 22:00:59 -0800
3
11
  Desc:
4
12
  - Created a bunch of workarounds needed because of bugs and backwards incompatible changes in new versions of third-party libraries...
5
- - (%) Fixed "gem install automateit". Created workaround for new ActiveSupport bug which doesn't install the Builder gem.
13
+ - (%) Fixed "gem install automateit". Created workaround for new ActiveSupport bug which doesn't install the Builder gem.
6
14
  - (%) Fixed "rake regem" which generates the AutomateIt gem. Created workaround for new RubyGems bug which no longer installs the necessary Gem::Format dependency. Created workaround for new Rake bug which causes FileList to act like a string instead of an array. Created workaround for new Rake/RubyGems bugs that don't load 'rubygems' by default.
7
15
  - Improved PasswdExpect, no longer passing username/password on command-line to improve security.
8
16
 
data/TODO.txt CHANGED
@@ -5,13 +5,15 @@ KEY: Important? Urgent? Easy? 1=yes, 0=no
5
5
  #---[ Quality issues ]--------------------------------------------------
6
6
  !!! ServiceManager -- Create new #stop_and_start, and add new #restart as #tell wrapper
7
7
  111 ServiceManager -- Write tests for start_and_enable and such
8
-
9
8
  !!! AccountManager -- Solaris fails 5% of the time on the last spec.
10
9
  !!! AccountManager -- OpenBSD stalls if it thinks a password's quality sucks.
11
10
  !!! AccountManager -- OpenBSD fails "should add groups to a user" and "should add users to group"
12
11
  111 PackageManager -- Improve PEAR spec by having it check files with and without channel URL
13
12
  111 AccountManager::NSCD -- Uses "ps -ef", needs abstraction
14
13
 
14
+ #---[ Design issues ]---------------------------------------------------
15
+ 111 PackageManager -- What's a reasonable way to leave out the ':with' option when using a hash argument to install? E.g., sudo ai -e "package_manager.install({'swiftfox-prescott' => '/tmp/swiftfox_3.0b3pre-1_prescott.deb'}, :with => :dpkg)"
16
+
15
17
  #---[ Development ]-----------------------------------------------------
16
18
  111 Shell -- Write #su(user, *command) as a wrapper around #sh
17
19
  101 Shell -- Expand glob patterns, e.g. chown_R(500, 500, "*")
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env perl
2
+
3
+ # Example: ./install.pl Acme::please
4
+
5
+ sub usage {
6
+ my($message) = @_;
7
+ print <<EOB;
8
+ usage: install.pl [--quiet|--help|--dryrun] module [modules...]
9
+ EOB
10
+ if ($message) {
11
+ print "ERROR: $message\n";
12
+ exit 1;
13
+ } else {
14
+ exit 0;
15
+ }
16
+ }
17
+
18
+ use warnings "all";
19
+ use CPAN;
20
+ use Getopt::Long;
21
+
22
+ our $quiet = 0;
23
+ our $dryrun = 0;
24
+ our $help = 0;
25
+ GetOptions(
26
+ 'quiet' => \$quiet,
27
+ 'dryrun' => \$dryrun,
28
+ 'n' => \$dryrun,
29
+ 'help' => \$help
30
+ );
31
+
32
+ if (1 == $help) {
33
+ usage(0);
34
+ }
35
+
36
+ @modules = @ARGV;
37
+ unless ($#modules >= 0) {
38
+ usage "No modules specified";
39
+ }
40
+
41
+ foreach my $module (@modules) {
42
+ if (my $module_ref = CPAN::Shell->expand('Module', $module)) {
43
+ print "* Installing: $module\n" unless $quiet;
44
+ $module_ref->install unless $dryrun;
45
+ } else {
46
+ print "! Can't find CPAN module: $module\n";
47
+ exit 1
48
+ }
49
+ }
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env perl
2
+
3
+ # Example: ./is_available.pl Acme::please CPAN
4
+
5
+ use warnings "all";
6
+ use CPAN;
7
+
8
+ @modules = @ARGV;
9
+ unless ($#modules >= 0) {
10
+ print "Usage: uninstall.pl mymodule [mymodule]\n";
11
+ exit 1
12
+ }
13
+
14
+ my @available;
15
+ my @unavailable;
16
+ foreach my $module (@modules) {
17
+ if (my $module_ref = CPAN::Shell->expand('Module', $module)) {
18
+ my $path = $module_ref->inst_file;
19
+ if ($path && -e $path) {
20
+ #IK# print $module_ref->inst_file, "\n";
21
+ push(@available, $module);
22
+ } else {
23
+ push(@unavailable, $module);
24
+ }
25
+ } else {
26
+ #IK# die "Can't find module: $module";
27
+ push(@unavailable, $module);
28
+ }
29
+ }
30
+
31
+ sub print_contents {
32
+ my($name, @modules) = @_;
33
+ return if $#modules < 0;
34
+ print "$name:\n";
35
+ foreach my $module (@modules) {
36
+ print " - $module\n";
37
+ }
38
+ }
39
+
40
+ print "--- %YAML:1.0\n";
41
+ print_contents 'available', @available;
42
+ print_contents 'unavailable', @unavailable;
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env perl
2
+
3
+ # Example: ./uninstall.pl Acme::please
4
+
5
+ sub usage {
6
+ my($message) = @_;
7
+ print <<EOB;
8
+ usage: uninstall.pl [--quiet|--help|--dryrun] module [modules...]
9
+ EOB
10
+ if ($message) {
11
+ print "ERROR: $message\n";
12
+ exit 1;
13
+ } else {
14
+ exit 0;
15
+ }
16
+ }
17
+
18
+ use warnings "all";
19
+ use ExtUtils::Packlist;
20
+ use ExtUtils::Installed;
21
+ use Getopt::Long;
22
+
23
+ our $quiet = 0;
24
+ our $dryrun = 0;
25
+ our $help = 0;
26
+ GetOptions(
27
+ 'quiet' => \$quiet,
28
+ 'dryrun' => \$dryrun,
29
+ 'n' => \$dryrun,
30
+ 'help' => \$help
31
+ );
32
+
33
+ if (1 == $help) {
34
+ usage(0);
35
+ }
36
+
37
+ @modules = @ARGV;
38
+ unless ($#modules >= 0) {
39
+ usage "No modules specified";
40
+ }
41
+
42
+ sub nuke {
43
+ my($target) = @_;
44
+ if ($dryrun == 0) {
45
+ unlink($target) || die "$! -- $target"
46
+ }
47
+ }
48
+
49
+ my $packlists = ExtUtils::Installed->new();
50
+
51
+ foreach my $module (@modules) {
52
+ print "* Uninstalling module: $module\n" unless $quiet;
53
+
54
+ foreach my $item ($packlists->files($module)) {
55
+ print "- File: $item\n" unless $quiet;
56
+ nuke $item;
57
+ }
58
+
59
+ my $packlist = $packlists->packlist($module)->packlist_file();
60
+ print "- List: $packlist\n" unless $quiet;
61
+ # NOTE: Leave packlist alone so it can be uninstalled if something goes catastrophically wrong with this uninstaller.
62
+ #IK# nuke $packlist;
63
+ }
@@ -203,7 +203,7 @@ class AutomateIt::PackageManager::BaseDriver < AutomateIt::Plugin::Driver
203
203
  case packages
204
204
  when Symbol
205
205
  nitpick "LN Sy"
206
- packages = packages.to_s
206
+ packages = [packages.to_s]
207
207
  when String
208
208
  nitpick "LN Ss"
209
209
  packages = packages.grep(LIST_NORMALIZER_RE).join(" ").split
@@ -237,6 +237,7 @@ class AutomateIt::PackageManager::BaseDriver < AutomateIt::Plugin::Driver
237
237
  end
238
238
 
239
239
  # Drivers
240
+ require 'automateit/package_manager/dpkg'
240
241
  require 'automateit/package_manager/apt'
241
242
  require 'automateit/package_manager/yum'
242
243
  require 'automateit/package_manager/gem'
@@ -244,3 +245,4 @@ require 'automateit/package_manager/egg'
244
245
  require 'automateit/package_manager/portage'
245
246
  require 'automateit/package_manager/pear'
246
247
  require 'automateit/package_manager/pecl'
248
+ require 'automateit/package_manager/cpan'
@@ -2,37 +2,9 @@
2
2
  #
3
3
  # The APT driver for the PackageManager provides a way to manage software
4
4
  # packages on Debian-style systems using <tt>apt-get</tt> and <tt>dpkg</tt>.
5
- class AutomateIt::PackageManager::APT < AutomateIt::PackageManager::BaseDriver
5
+ class AutomateIt::PackageManager::APT < AutomateIt::PackageManager::DPKG
6
6
  depends_on :programs => %w(apt-get dpkg)
7
7
 
8
- def suitability(method, *args) # :nodoc:
9
- return available? ? 1 : 0
10
- end
11
-
12
- # See AutomateIt::PackageManager#installed?
13
- def installed?(*packages)
14
- return _installed_helper?(*packages) do |list, opts|
15
- ### data = `dpkg --status nomarch apache2 not_a_real_package 2>&1`
16
- cmd = "dpkg --status "+list.join(" ")+" 2>&1"
17
-
18
- log.debug(PEXEC+cmd)
19
- data = `#{cmd}`
20
- matches = data.scan(/^Package: (.+)$\s*^Status: (.+)$/)
21
- available = matches.inject([]) do |sum, match|
22
- package, status = match
23
- sum << package if status.match(/(?:^|\s)installed\b/)
24
- sum
25
- end
26
-
27
- available
28
- end
29
- end
30
-
31
- # See AutomateIt::PackageManager#not_installed?
32
- def not_installed?(*packages)
33
- return _not_installed_helper?(*packages)
34
- end
35
-
36
8
  # See AutomateIt::PackageManager#install
37
9
  def install(*packages)
38
10
  return _install_helper(*packages) do |list, opts|
@@ -46,18 +18,4 @@ class AutomateIt::PackageManager::APT < AutomateIt::PackageManager::BaseDriver
46
18
  interpreter.sh(cmd)
47
19
  end
48
20
  end
49
-
50
- # See AutomateIt::PackageManager#uninstall
51
- def uninstall(*packages)
52
- return _uninstall_helper(*packages) do |list, opts|
53
- # apt-get options:
54
- # -y : yes to all queries
55
- # -q : no interactive progress bars
56
- cmd = "export DEBIAN_FRONTEND=noninteractive; apt-get remove -y -q "+list.join(" ")+" < /dev/null"
57
- cmd << " > /dev/null" if opts[:quiet]
58
- cmd << " 2>&1"
59
-
60
- interpreter.sh(cmd)
61
- end
62
- end
63
21
  end
@@ -0,0 +1,63 @@
1
+ # == PackageManager::CPAN
2
+ #
3
+ # A PackageManager driver for Perl CPAN (Comprehensive Perl Archive Network)
4
+ # software packages.
5
+ class ::AutomateIt::PackageManager::CPAN < ::AutomateIt::PackageManager::BaseDriver
6
+ CPAN_INSTALL = File.join(::AutomateIt::Constants::HELPERS_DIR, "cpan_install.pl")
7
+ CPAN_UNINSTALL = File.join(::AutomateIt::Constants::HELPERS_DIR, "cpan_uninstall.pl")
8
+ CPAN_IS_INSTALLED = File.join(::AutomateIt::Constants::HELPERS_DIR, "cpan_is_installed.pl")
9
+
10
+ depends_on :programs => %w(perl)
11
+
12
+ def suitability(method, *args) # :nodoc:
13
+ # Never select as default driver
14
+ return 0
15
+ end
16
+
17
+ # See AutomateIt::PackageManager#installed?
18
+ def installed?(*packages)
19
+ return _installed_helper?(*packages) do |list, opts|
20
+ cmd = "#{CPAN_IS_INSTALLED} #{list.join(' ')}"
21
+
22
+ log.debug(PEXEC+cmd)
23
+ output = `#{cmd}`
24
+ output.sub!(/.*---(\s[^\n]+)?\n/m, '')
25
+ struct = ::YAML.load(output)
26
+
27
+ struct["available"] || []
28
+ end
29
+ end
30
+
31
+ # See AutomateIt::PackageManager#not_installed?
32
+ def not_installed?(*packages)
33
+ return _not_installed_helper?(*packages)
34
+ end
35
+
36
+ # *IMPORTANT*: See documentation at the top of this file for how to correctly
37
+ # install packages from a specific channel.
38
+ #
39
+ # Options:
40
+ # * :force -- Force installation, needed when installing unstable packages
41
+ #
42
+ # See AutomateIt::PackageManager#install
43
+ def install(*packages)
44
+ return _install_helper(*packages) do |list, opts|
45
+ cmd = "#{CPAN_INSTALL} #{list.join(' ')}"
46
+ cmd << " > /dev/null" if opts[:quiet]
47
+ cmd << " 2>&1"
48
+
49
+ interpreter.sh(cmd)
50
+ end
51
+ end
52
+
53
+ # See AutomateIt::PackageManager#uninstall
54
+ def uninstall(*packages)
55
+ return _uninstall_helper(*packages) do |list, opts|
56
+ cmd = "#{CPAN_UNINSTALL} #{list.join(' ')} < /dev/null"
57
+ cmd << " > /dev/null" if opts[:quiet]
58
+ cmd << " 2>&1"
59
+
60
+ interpreter.sh(cmd)
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,58 @@
1
+ # == PackageManager::DPKG
2
+ #
3
+ # The DPKG driver for the PackageManager provides a way to manage software
4
+ # packages on Debian-style systems using <tt>dpkg</tt>.
5
+ class AutomateIt::PackageManager::DPKG < AutomateIt::PackageManager::BaseDriver
6
+ depends_on :programs => %w(dpkg)
7
+
8
+ def suitability(method, *args) # :nodoc:
9
+ return available? ? 1 : 0
10
+ end
11
+
12
+ # See AutomateIt::PackageManager#installed?
13
+ def installed?(*packages)
14
+ return _installed_helper?(*packages) do |list, opts|
15
+ ### data = `dpkg --status nomarch apache2 not_a_real_package 2>&1`
16
+ cmd = "dpkg --status "+list.join(" ")+" 2>&1"
17
+
18
+ log.debug(PEXEC+cmd)
19
+ data = `#{cmd}`
20
+ matches = data.scan(/^Package: (.+)$\s*^Status: (.+)$/)
21
+ available = matches.inject([]) do |sum, match|
22
+ package, status = match
23
+ sum << package if status.match(/(?:^|\s)installed\b/)
24
+ sum
25
+ end
26
+
27
+ available
28
+ end
29
+ end
30
+
31
+ # See AutomateIt::PackageManager#not_installed?
32
+ def not_installed?(*packages)
33
+ return _not_installed_helper?(*packages)
34
+ end
35
+
36
+ # See AutomateIt::PackageManager#install
37
+ def install(*packages)
38
+ return _install_helper(*packages) do |list, opts|
39
+ cmd = "export DEBIAN_FRONTEND=noninteractive; dpkg --install --skip-same-version "+list.join(" ")+" < /dev/null"
40
+ cmd << " > /dev/null" if opts[:quiet]
41
+ cmd << " 2>&1"
42
+
43
+ interpreter.sh(cmd)
44
+ end
45
+ end
46
+
47
+ # See AutomateIt::PackageManager#uninstall
48
+ def uninstall(*packages)
49
+ return _uninstall_helper(*packages) do |list, opts|
50
+ cmd = "export DEBIAN_FRONTEND=noninteractive; dpkg --remove "+list.join(" ")+" < /dev/null"
51
+ cmd << " > /dev/null" if opts[:quiet]
52
+ cmd << " 2>&1"
53
+
54
+ interpreter.sh(cmd)
55
+ end
56
+ end
57
+ end
58
+
@@ -1,7 +1,7 @@
1
1
  # See AutomateIt::Interpreter for usage information.
2
2
  module AutomateIt # :nodoc:
3
3
  # AutomateIt version
4
- VERSION=Gem::Version.new("0.71219")
4
+ VERSION=Gem::Version.new("0.71220")
5
5
 
6
6
  # Instantiates a new Interpreter. See documentation for
7
7
  # Interpreter#setup.
@@ -90,7 +90,7 @@ else
90
90
  :egg => "_sre.py", # Slower reimplementation of ancient Python Regexps
91
91
  :pear => "File_DICOM", # Obscure package for DICOM X-rays, abandoned in 2003
92
92
  :pecl => "ecasound", # Obscure package for Ecasound libs, abandoned in 2003
93
- ### :cpan => "Acme::please", # Insane gimmick port of intercal's please statements
93
+ :cpan => "Acme::please", # Insane gimmick port of intercal's please statements
94
94
  }
95
95
 
96
96
  if INTERPRETER.tagged?(:centos)
@@ -0,0 +1,23 @@
1
+ require File.join(File.dirname(File.expand_path(__FILE__)), "/../spec_helper.rb")
2
+
3
+ describe AutomateIt::PackageManager::DPKG do
4
+ before :all do
5
+ @a = AutomateIt.new(:verbosity => Logger::WARN)
6
+ @m = @a.package_manager
7
+ @d = @m.drivers[:dpkg]
8
+ end
9
+
10
+ it "should handle hash arguments" do
11
+ # Given
12
+ @d.should_receive(:installed?).and_return(false, ["foonix"])
13
+ @a.should_receive(:sh).and_return do |cmd|
14
+ if cmd =~ /dpkg.*install.*\bfoonix-1.2.3.deb\b/
15
+ true
16
+ else
17
+ raise "Unknown cmd: #{cmd}"
18
+ end
19
+ end
20
+
21
+ @d.install({:foonix => "foonix-1.2.3.deb"}, :with => :dpkg)
22
+ end
23
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: automateit
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.71219"
4
+ version: "0.71220"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igal Koshevoy
@@ -30,7 +30,7 @@ cert_chain:
30
30
  COR01yWDcVLdM89nNLk=
31
31
  -----END CERTIFICATE-----
32
32
 
33
- date: 2007-12-19 00:00:00 -08:00
33
+ date: 2007-12-21 00:00:00 -08:00
34
34
  default_executable:
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
@@ -74,9 +74,9 @@ email: igal@pragmaticraft.com
74
74
  executables:
75
75
  - aifield
76
76
  - automateit
77
+ - aissh
77
78
  - ai
78
79
  - aitag
79
- - aissh
80
80
  extensions: []
81
81
 
82
82
  extra_rdoc_files:
@@ -98,22 +98,25 @@ files:
98
98
  - TUTORIAL.txt
99
99
  - bin/aifield
100
100
  - bin/automateit
101
+ - bin/aissh
101
102
  - bin/ai
102
103
  - bin/aitag
103
- - bin/aissh
104
- - examples/basic/config/tags.yml
105
- - examples/basic/config/fields.yml
104
+ - examples/basic/Rakefile
106
105
  - examples/basic/config/automateit_env.rb
106
+ - examples/basic/config/fields.yml
107
+ - examples/basic/config/tags.yml
107
108
  - examples/basic/dist/README.txt
108
109
  - examples/basic/dist/myapp_server.erb
110
+ - examples/basic/install.log
109
111
  - examples/basic/lib/README.txt
110
112
  - examples/basic/recipes/README.txt
111
- - examples/basic/recipes/uninstall.rb
112
113
  - examples/basic/recipes/install.rb
113
- - examples/basic/install.log
114
- - examples/basic/Rakefile
114
+ - examples/basic/recipes/uninstall.rb
115
115
  - docs/friendly_errors.txt
116
116
  - docs/previews.txt
117
+ - helpers/cpan_install.pl
118
+ - helpers/cpan_is_installed.pl
119
+ - helpers/cpan_uninstall.pl
117
120
  - helpers/which.cmd
118
121
  - lib/hashcache.rb
119
122
  - lib/automateit.rb
@@ -133,70 +136,72 @@ files:
133
136
  - lib/automateit/plugin.rb
134
137
  - lib/automateit/common.rb
135
138
  - lib/automateit/template_manager.rb
136
- - lib/automateit/package_manager/pear.rb
139
+ - lib/automateit/package_manager/cpan.rb
137
140
  - lib/automateit/package_manager/apt.rb
138
- - lib/automateit/package_manager/pecl.rb
141
+ - lib/automateit/package_manager/dpkg.rb
139
142
  - lib/automateit/package_manager/gem.rb
140
143
  - lib/automateit/package_manager/egg.rb
141
144
  - lib/automateit/package_manager/yum.rb
145
+ - lib/automateit/package_manager/pear.rb
146
+ - lib/automateit/package_manager/pecl.rb
142
147
  - lib/automateit/package_manager/portage.rb
143
148
  - lib/automateit/edit_manager.rb
144
149
  - lib/automateit/constants.rb
150
+ - lib/automateit/error.rb
145
151
  - lib/automateit/service_manager/rc_update.rb
146
152
  - lib/automateit/service_manager/sysv.rb
147
- - lib/automateit/service_manager/chkconfig.rb
148
153
  - lib/automateit/service_manager/update_rcd.rb
149
- - lib/automateit/account_manager/posix.rb
154
+ - lib/automateit/service_manager/chkconfig.rb
150
155
  - lib/automateit/account_manager/nscd.rb
151
156
  - lib/automateit/account_manager/base.rb
157
+ - lib/automateit/account_manager/posix.rb
152
158
  - lib/automateit/account_manager/etc.rb
153
159
  - lib/automateit/account_manager/passwd_expect.rb
154
160
  - lib/automateit/account_manager/passwd_pty.rb
155
- - lib/automateit/platform_manager/debian.rb
161
+ - lib/automateit/platform_manager/darwin.rb
156
162
  - lib/automateit/platform_manager/struct.rb
157
- - lib/automateit/platform_manager/windows.rb
163
+ - lib/automateit/platform_manager/debian.rb
158
164
  - lib/automateit/platform_manager/uname.rb
159
165
  - lib/automateit/platform_manager/lsb.rb
160
- - lib/automateit/platform_manager/openbsd.rb
161
- - lib/automateit/platform_manager/gentoo.rb
162
- - lib/automateit/platform_manager/darwin.rb
163
166
  - lib/automateit/platform_manager/freebsd.rb
167
+ - lib/automateit/platform_manager/gentoo.rb
168
+ - lib/automateit/platform_manager/openbsd.rb
164
169
  - lib/automateit/platform_manager/sunos.rb
170
+ - lib/automateit/platform_manager/windows.rb
165
171
  - lib/automateit/root.rb
166
- - lib/automateit/address_manager/bsd.rb
172
+ - lib/automateit/address_manager/base.rb
167
173
  - lib/automateit/address_manager/portable.rb
168
- - lib/automateit/address_manager/sunos.rb
174
+ - lib/automateit/address_manager/bsd.rb
169
175
  - lib/automateit/address_manager/linux.rb
170
- - lib/automateit/address_manager/base.rb
176
+ - lib/automateit/address_manager/sunos.rb
171
177
  - lib/automateit/address_manager/freebsd.rb
172
178
  - lib/automateit/address_manager/openbsd.rb
173
179
  - lib/automateit/project.rb
174
180
  - lib/automateit/shell_manager/portable.rb
175
- - lib/automateit/shell_manager/symlink.rb
176
- - lib/automateit/shell_manager/link.rb
177
181
  - lib/automateit/shell_manager/base_link.rb
178
- - lib/automateit/shell_manager/which_windows.rb
179
- - lib/automateit/shell_manager/which_unix.rb
182
+ - lib/automateit/shell_manager/link.rb
183
+ - lib/automateit/shell_manager/symlink.rb
180
184
  - lib/automateit/shell_manager/which_base.rb
185
+ - lib/automateit/shell_manager/which_unix.rb
186
+ - lib/automateit/shell_manager/which_windows.rb
181
187
  - lib/automateit/tag_manager/struct.rb
182
188
  - lib/automateit/tag_manager/yaml.rb
183
189
  - lib/automateit/tag_manager/tag_parser.rb
184
- - lib/automateit/template_manager/erb.rb
185
- - lib/automateit/template_manager/base.rb
186
- - lib/automateit/error.rb
187
190
  - lib/automateit/download_manager.rb
191
+ - lib/automateit/template_manager/base.rb
192
+ - lib/automateit/template_manager/erb.rb
188
193
  - lib/tempster.rb
189
194
  - lib/ext/metaclass.rb
190
195
  - lib/ext/object.rb
191
196
  - lib/ext/shell_escape.rb
197
+ - lib/helpful_erb.rb
192
198
  - lib/nitpick.rb
193
199
  - lib/queued_logger.rb
194
- - lib/helpful_erb.rb
195
200
  - lib/nested_error.rb
196
201
  - misc/index_gem_repository.rb
197
- - misc/setup_rubygems.sh
198
202
  - misc/setup_egg.rb
199
203
  - misc/setup_gem_dependencies.sh
204
+ - misc/setup_rubygems.sh
200
205
  - misc/setup_ruby-dbi.rb
201
206
  - spec/spec_helper.rb
202
207
  - spec/unit/plugins_spec.rb
@@ -208,24 +213,25 @@ files:
208
213
  - spec/unit/platform_manager_spec.rb
209
214
  - spec/unit/address_manager_spec.rb
210
215
  - spec/unit/edit_manager_spec.rb
211
- - spec/unit/shell_escape_spec.rb
212
- - spec/unit/object_spec.rb
213
216
  - spec/unit/nested_error_spec.rb
217
+ - spec/unit/object_spec.rb
218
+ - spec/unit/package_manager_spec.rb
219
+ - spec/unit/shell_escape_spec.rb
214
220
  - spec/integration/service_manager_sysv_spec.rb
215
- - spec/integration/template_manager_erb_spec.rb
221
+ - spec/integration/account_manager_nscd_spec.rb
216
222
  - spec/integration/package_manager_spec.rb
223
+ - spec/integration/address_manager_portable_spec.rb
217
224
  - spec/integration/platform_manager_spec.rb
218
- - spec/integration/edit_manager_spec.rb
225
+ - spec/integration/cli_spec.rb
219
226
  - spec/integration/shell_manager_spec.rb
220
227
  - spec/integration/account_manager_spec.rb
228
+ - spec/integration/address_manager_spec.rb
229
+ - spec/integration/download_spec.rb
230
+ - spec/integration/edit_manager_spec.rb
221
231
  - spec/integration/examples_spec.rb
222
- - spec/integration/cli_spec.rb
223
- - spec/integration/account_manager_nscd_spec.rb
224
- - spec/integration/address_manager_portable_spec.rb
225
- - spec/integration/tempster_spec.rb
226
232
  - spec/integration/examples_spec_editor.rb
227
- - spec/integration/download_spec.rb
228
- - spec/integration/address_manager_spec.rb
233
+ - spec/integration/template_manager_erb_spec.rb
234
+ - spec/integration/tempster_spec.rb
229
235
  - spec/breaker.rb
230
236
  - spec/extras/scratch.rb
231
237
  - spec/extras/automateit_service_sysv_test
@@ -276,25 +282,26 @@ test_files:
276
282
  - spec/unit/platform_manager_spec.rb
277
283
  - spec/unit/address_manager_spec.rb
278
284
  - spec/unit/edit_manager_spec.rb
279
- - spec/unit/shell_escape_spec.rb
280
- - spec/unit/object_spec.rb
281
285
  - spec/unit/nested_error_spec.rb
286
+ - spec/unit/object_spec.rb
287
+ - spec/unit/package_manager_spec.rb
288
+ - spec/unit/shell_escape_spec.rb
282
289
  - spec/integration
283
290
  - spec/integration/service_manager_sysv_spec.rb
284
- - spec/integration/template_manager_erb_spec.rb
291
+ - spec/integration/account_manager_nscd_spec.rb
285
292
  - spec/integration/package_manager_spec.rb
293
+ - spec/integration/address_manager_portable_spec.rb
286
294
  - spec/integration/platform_manager_spec.rb
287
- - spec/integration/edit_manager_spec.rb
295
+ - spec/integration/cli_spec.rb
288
296
  - spec/integration/shell_manager_spec.rb
289
297
  - spec/integration/account_manager_spec.rb
298
+ - spec/integration/address_manager_spec.rb
299
+ - spec/integration/download_spec.rb
300
+ - spec/integration/edit_manager_spec.rb
290
301
  - spec/integration/examples_spec.rb
291
- - spec/integration/cli_spec.rb
292
- - spec/integration/account_manager_nscd_spec.rb
293
- - spec/integration/address_manager_portable_spec.rb
294
- - spec/integration/tempster_spec.rb
295
302
  - spec/integration/examples_spec_editor.rb
296
- - spec/integration/download_spec.rb
297
- - spec/integration/address_manager_spec.rb
303
+ - spec/integration/template_manager_erb_spec.rb
304
+ - spec/integration/tempster_spec.rb
298
305
  - spec/breaker.rb
299
306
  - spec/extras
300
307
  - spec/extras/scratch.rb
metadata.gz.sig CHANGED
Binary file