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 +0 -0
- data/CHANGES.txt +9 -1
- data/TODO.txt +3 -1
- data/helpers/cpan_install.pl +49 -0
- data/helpers/cpan_is_installed.pl +42 -0
- data/helpers/cpan_uninstall.pl +63 -0
- data/lib/automateit/package_manager.rb +3 -1
- data/lib/automateit/package_manager/apt.rb +1 -43
- data/lib/automateit/package_manager/cpan.rb +63 -0
- data/lib/automateit/package_manager/dpkg.rb +58 -0
- data/lib/automateit/root.rb +1 -1
- data/spec/integration/package_manager_spec.rb +1 -1
- data/spec/unit/package_manager_spec.rb +23 -0
- metadata +57 -50
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGES.txt
CHANGED
@@ -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::
|
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
|
+
|
data/lib/automateit/root.rb
CHANGED
@@ -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
|
-
|
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.
|
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-
|
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
|
-
-
|
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/
|
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/
|
139
|
+
- lib/automateit/package_manager/cpan.rb
|
137
140
|
- lib/automateit/package_manager/apt.rb
|
138
|
-
- lib/automateit/package_manager/
|
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/
|
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/
|
161
|
+
- lib/automateit/platform_manager/darwin.rb
|
156
162
|
- lib/automateit/platform_manager/struct.rb
|
157
|
-
- lib/automateit/platform_manager/
|
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/
|
172
|
+
- lib/automateit/address_manager/base.rb
|
167
173
|
- lib/automateit/address_manager/portable.rb
|
168
|
-
- lib/automateit/address_manager/
|
174
|
+
- lib/automateit/address_manager/bsd.rb
|
169
175
|
- lib/automateit/address_manager/linux.rb
|
170
|
-
- lib/automateit/address_manager/
|
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/
|
179
|
-
- lib/automateit/shell_manager/
|
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/
|
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/
|
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/
|
228
|
-
- spec/integration/
|
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/
|
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/
|
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/
|
297
|
-
- spec/integration/
|
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
|