automateit 0.71219 → 0.71220
Sign up to get free protection for your applications and to get access to all the features.
- 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
|