ps-voodoo 0.0.3 → 0.0.4
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/.gitignore +2 -0
- data/LICENSE.txt +1 -1
- data/README.md +26 -10
- data/bin/voodoo +22 -10
- data/lib/voodoo.rb +4 -0
- data/lib/voodoo/commands.rb +1 -0
- data/lib/voodoo/commands/add.rb +4 -2
- data/lib/voodoo/commands/config.rb +7 -1
- data/lib/voodoo/commands/run.rb +1 -0
- data/lib/voodoo/commands/template.rb +49 -0
- data/lib/voodoo/commands/templates/backup.dms +10 -0
- data/lib/voodoo/commands/templates/migration_email.erb +20 -0
- data/lib/voodoo/commands/templates/script.sql +4 -0
- data/lib/voodoo/migration.rb +13 -8
- data/lib/voodoo/peopletools.rb +1 -1
- data/lib/voodoo/peopletools/sqr.rb +3 -1
- data/lib/voodoo/version.rb +1 -1
- metadata +11 -7
data/.gitignore
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,13 +1,21 @@
|
|
1
1
|
VooDoo
|
2
2
|
===========
|
3
3
|
|
4
|
-
VooDoo is a command line application to help automate some PeopleSoft
|
4
|
+
VooDoo is a command line application to help automate some PeopleSoft
|
5
|
+
administration activities that are typically performed locally.
|
5
6
|
|
6
7
|
Why?
|
7
|
-
----
|
8
|
-
PeopleSoft installation and administration is tedious. Migrating projects, generating compare reports, and running SQR's locally is a pain.
|
8
|
+
----
|
9
9
|
|
10
|
-
|
10
|
+
PeopleSoft installation and administration is tedious.
|
11
|
+
Migrating projects, generating compare reports, and running SQR's
|
12
|
+
locally is a pain.
|
13
|
+
|
14
|
+
VooDoo alleviates some of this by providing a simple command line
|
15
|
+
interface for interacting with your local PeopleTools installation
|
16
|
+
using predefined settings for each of your environments. For example,
|
17
|
+
migrating a project between two environments using VooDoo is as simple
|
18
|
+
as issuing the following command:
|
11
19
|
|
12
20
|
C:\> voodoo migrate TEST_PROJECT HRDEV HRTEST
|
13
21
|
|
@@ -22,7 +30,7 @@ VooDoo alleviates some of this by providing a simple command line interface for
|
|
22
30
|
|
23
31
|
|
24
32
|
Super. What are the requirements?
|
25
|
-
|
33
|
+
---------------------------------
|
26
34
|
|
27
35
|
In order to run VooDoo, you'll first need the following:
|
28
36
|
|
@@ -82,7 +90,8 @@ To run a compare report:
|
|
82
90
|
Name for output folder: VOODOO_TEST
|
83
91
|
07/18/2011 13:09:54: Creating compare reports for SCRIPTING_TEST between FNDEV and FNSPTB
|
84
92
|
|
85
|
-
If successful, the generated HTML output of the compare report will be
|
93
|
+
If successful, the generated HTML output of the compare report will be
|
94
|
+
opened in your default browser. To see what else you can do, run:
|
86
95
|
|
87
96
|
C:\>voodoo help
|
88
97
|
NAME:
|
@@ -107,6 +116,7 @@ If successful, the generated HTML output of the compare report will be opened in
|
|
107
116
|
run appengine runs an appengine against the specified environment
|
108
117
|
run sqr runs the specified sqr locally
|
109
118
|
show shows configuration details for an environment
|
119
|
+
template datafix creates a datafix folder with template files
|
110
120
|
|
111
121
|
GLOBAL OPTIONS:
|
112
122
|
|
@@ -124,9 +134,15 @@ If successful, the generated HTML output of the compare report will be opened in
|
|
124
134
|
Sounds too easy. How does it work?
|
125
135
|
----------------------------------
|
126
136
|
|
127
|
-
It's actually pretty simple.
|
137
|
+
It's actually pretty simple. Global and environment configuration data
|
138
|
+
is stored in YAML files under the .voodoo folder in the user's HOME
|
139
|
+
directory. When commands are issued to VooDoo, it uses the environment
|
140
|
+
configuration information to pass command line arguments to the local
|
141
|
+
executable.
|
128
142
|
|
129
|
-
In some situations the Windows registry is updated to set options
|
143
|
+
In some situations the Windows registry is updated to set options
|
144
|
+
that cannot be passed via the command line (project build output
|
145
|
+
destinations, datamover output destinations).
|
130
146
|
|
131
147
|
|
132
148
|
Who wrote this thing?
|
@@ -149,8 +165,8 @@ distribute, sublicense, and/or sell copies of the Software, and to
|
|
149
165
|
permit persons to whom the Software is furnished to do so, subject to
|
150
166
|
the following conditions:
|
151
167
|
|
152
|
-
The above copyright notice and this permission notice shall be
|
153
|
-
|
168
|
+
The above copyright notice and this permission notice shall be included
|
169
|
+
in all copies or substantial portions of the Software.
|
154
170
|
|
155
171
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
156
172
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
data/bin/voodoo
CHANGED
@@ -9,9 +9,11 @@ program :name, 'Voodoo'
|
|
9
9
|
program :version, Voodoo::VERSION
|
10
10
|
program :description, 'Black Magic Utility for PeopleSoft Administration'
|
11
11
|
|
12
|
+
global_option('--debug') { Voodoo.show_debugging }
|
13
|
+
|
12
14
|
command :add do |c|
|
13
15
|
c.syntax = 'voodoo add [environment name]'
|
14
|
-
c.summary = '
|
16
|
+
c.summary = 'Adds an environment to the configuration file'
|
15
17
|
c.description = 'Prompts for environment information and saves it to the environment configuration file'
|
16
18
|
c.example 'Prompt for setup values before adding VDDMO to the configuration file', 'voodoo add VDDMO'
|
17
19
|
c.action do |args|
|
@@ -21,7 +23,7 @@ end
|
|
21
23
|
|
22
24
|
command :remove do |c|
|
23
25
|
c.syntax = 'voodoo remove [environment name]'
|
24
|
-
c.summary = '
|
26
|
+
c.summary = 'Removes an environment from the configuration file'
|
25
27
|
c.description = 'Deletes the specified environment from the configuration file'
|
26
28
|
c.example 'Removes the environment VDDMO from the configuration file', 'voodoo remove VDDMO'
|
27
29
|
c.action do |args|
|
@@ -41,7 +43,7 @@ end
|
|
41
43
|
|
42
44
|
command :show do |c|
|
43
45
|
c.syntax = 'voodoo show [environment name]'
|
44
|
-
c.summary = '
|
46
|
+
c.summary = 'Shows configuration details for an environment'
|
45
47
|
c.description = 'Outputs a table containing information about the specified environment'
|
46
48
|
c.example 'Show information about VDDMO', 'voodoo show VDDMO'
|
47
49
|
c.action do |args|
|
@@ -51,7 +53,7 @@ end
|
|
51
53
|
|
52
54
|
command :config do |c|
|
53
55
|
c.syntax = 'voodoo config'
|
54
|
-
c.summary = '
|
56
|
+
c.summary = 'Create global configuration settings'
|
55
57
|
c.description = 'Prompts for global configuration information and saves it to the configuration file'
|
56
58
|
c.action do |args, options|
|
57
59
|
c.when_called Voodoo::Commands.config
|
@@ -60,7 +62,7 @@ end
|
|
60
62
|
|
61
63
|
command :compare do |c|
|
62
64
|
c.syntax = 'voodoo compare [project] [source] [target]'
|
63
|
-
c.summary = '
|
65
|
+
c.summary = 'Create a compare report for the specified project'
|
64
66
|
c.description = 'Creates an HTML compare report for the specified project and opens it in the default browser'
|
65
67
|
c.example 'Create a compare report between two environments', 'voodoo compare EXAMPLE_PROJECT VDDEV VDTEST'
|
66
68
|
c.action do |args|
|
@@ -70,7 +72,7 @@ end
|
|
70
72
|
|
71
73
|
command :build do |c|
|
72
74
|
c.syntax = 'voodoo build [project] [environment]'
|
73
|
-
c.summary = '
|
75
|
+
c.summary = 'Builds a project definition in the specified environment'
|
74
76
|
c.description = 'Builds a project definition script for the specified project using AppDesigner and executes it in the target database'
|
75
77
|
c.example 'Build specified project', 'voodoo build EXAMPLE_PROJECT VDTEST'
|
76
78
|
c.action do |args|
|
@@ -80,7 +82,7 @@ end
|
|
80
82
|
|
81
83
|
command :archive do |c|
|
82
84
|
c.syntax = 'voodoo archive [project] [environment]'
|
83
|
-
c.summary = '
|
85
|
+
c.summary = 'Copies a project to file from the specified environment'
|
84
86
|
c.description = 'Copies a project from the specified environment to file in the output directory'
|
85
87
|
c.example 'Archive specified project', 'voodoo archive EXAMPLE_PROJECT VDTEST'
|
86
88
|
c.action do |args|
|
@@ -90,7 +92,7 @@ end
|
|
90
92
|
|
91
93
|
command :migrate do |c|
|
92
94
|
c.syntax = 'voodoo migrate [project] [source] [target]'
|
93
|
-
c.summary = '
|
95
|
+
c.summary = 'Migrates a project between environments'
|
94
96
|
c.description = 'Migrates a project between two environments after running a compare report and copying the objects to file'
|
95
97
|
c.example 'Migrate project between environments', 'voodoo migrate EXAMPLE_PROJECT VDDEV VDTEST'
|
96
98
|
c.action do |args|
|
@@ -100,7 +102,7 @@ end
|
|
100
102
|
|
101
103
|
command :'run appengine' do |c|
|
102
104
|
c.syntax = 'voodoo run appengine [ae_name] [environment]'
|
103
|
-
c.summary = '
|
105
|
+
c.summary = 'Runs an appengine against the specified environment'
|
104
106
|
c.description = 'Runs an appengine against the specified PeopleSoft environment'
|
105
107
|
c.example 'Run the VERSION appengine agains VDTEST', 'voodoo run appengine VERSION VDTEST'
|
106
108
|
c.action do |args|
|
@@ -110,7 +112,7 @@ end
|
|
110
112
|
|
111
113
|
command :'run sqr' do |c|
|
112
114
|
c.syntax = 'voodoo run sqr [sqr name] [environment]'
|
113
|
-
c.summary = '
|
115
|
+
c.summary = 'Runs the specified sqr locally'
|
114
116
|
c.description = 'Run the specified SQR locally using the sqr bin specified in the environment configuration.'
|
115
117
|
c.example 'Run SQR', 'voodoo run sqr SETSPACE.sqr VDDEV'
|
116
118
|
c.action do |args|
|
@@ -118,3 +120,13 @@ command :'run sqr' do |c|
|
|
118
120
|
end
|
119
121
|
end
|
120
122
|
|
123
|
+
command :'template datafix' do |c|
|
124
|
+
c.syntax = 'voodoo template datafix [output folder]'
|
125
|
+
c.summary = 'Creates a datafix folder with sample files'
|
126
|
+
c.description = 'Create a folder and populate sample files to be updated with datafix SQL.'
|
127
|
+
c.example 'Create datafix folder', 'voodoo template datafix SAMPLE_DATAFIX'
|
128
|
+
c.action do |args|
|
129
|
+
Voodoo::Commands.template_datafix(args)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
data/lib/voodoo.rb
CHANGED
@@ -15,6 +15,10 @@ module Voodoo
|
|
15
15
|
"#{Time.now.strftime("%m/%d/%Y %H:%M:%S")}: #{msg}\n"
|
16
16
|
}
|
17
17
|
|
18
|
+
def self.show_debugging
|
19
|
+
LOG.level = Logger::DEBUG
|
20
|
+
end
|
21
|
+
|
18
22
|
def self.libpath( *args )
|
19
23
|
rv = args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten)
|
20
24
|
if block_given?
|
data/lib/voodoo/commands.rb
CHANGED
data/lib/voodoo/commands/add.rb
CHANGED
@@ -5,7 +5,7 @@ module Voodoo
|
|
5
5
|
|
6
6
|
def self.add(args=nil)
|
7
7
|
settings = {}
|
8
|
-
puts "\n
|
8
|
+
puts "\n----Appdesigner/Datamover/AppEngine Settings------"
|
9
9
|
if args.first.nil?
|
10
10
|
name = ask("Database name: ").upcase
|
11
11
|
else
|
@@ -13,11 +13,13 @@ module Voodoo
|
|
13
13
|
end
|
14
14
|
settings['db_type'] = ask("Database type: ", %w{ORACLE}) { |q| q.default = "ORACLE" }
|
15
15
|
settings['app_username'] = ask("Application username: ")
|
16
|
+
|
17
|
+
puts "\n----Output Archive Settings-----------------------"
|
16
18
|
if agree("\nWould you like to archive migration output files for this environment? (y/n) ") == true
|
17
19
|
settings['migration_archive'] = get_path("Archive destination")
|
18
20
|
end
|
19
21
|
|
20
|
-
puts "\n
|
22
|
+
puts "\n----SQR Settings----------------------------------"
|
21
23
|
settings['db_username'] = ask("Database username: ") { |q| q.default = "sysadm" }
|
22
24
|
settings['ps_home'] = get_path("PS_HOME directory")
|
23
25
|
|
@@ -5,9 +5,15 @@ module Voodoo
|
|
5
5
|
|
6
6
|
def self.config
|
7
7
|
settings = {}
|
8
|
-
puts "\n
|
8
|
+
puts "\n----Global Configuration Settings-----------------"
|
9
9
|
settings[:ps_home] = get_path("Local tools directory")
|
10
10
|
settings[:migration_output_dir] = get_path("Default output directory for migration data")
|
11
|
+
|
12
|
+
if agree("\nWould you like to define email notification settings? (y/n) ") == true
|
13
|
+
settings[:mail_server] = ask("SMTP server: ")
|
14
|
+
settings[:smtp_port] = ask("SMTP port: ") { |q| q.default = "587" }
|
15
|
+
settings[:email_from] = ask("Email from address: ")
|
16
|
+
end
|
11
17
|
Voodoo.write_config_file(settings)
|
12
18
|
end
|
13
19
|
|
data/lib/voodoo/commands/run.rb
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
3
|
+
module Voodoo
|
4
|
+
|
5
|
+
module Commands
|
6
|
+
extend self
|
7
|
+
|
8
|
+
class ErbBinding < OpenStruct
|
9
|
+
def get_binding
|
10
|
+
return binding()
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def template_datafix(args=nil)
|
15
|
+
|
16
|
+
if args[0].nil?
|
17
|
+
datafix = get_migration
|
18
|
+
else
|
19
|
+
datafix = Migration.new(args.first.upcase)
|
20
|
+
end
|
21
|
+
|
22
|
+
records = ask("Records to be affected: ", Array)
|
23
|
+
|
24
|
+
backup_template = File.read(File.join((File.dirname(__FILE__)), '/templates/backup.dms').gsub!(File::SEPARATOR, File::ALT_SEPARATOR))
|
25
|
+
script_template = File.read(File.join((File.dirname(__FILE__)), '/templates/script.sql').gsub!(File::SEPARATOR, File::ALT_SEPARATOR))
|
26
|
+
|
27
|
+
vars = ErbBinding.new
|
28
|
+
vars.name = datafix.migration_name
|
29
|
+
vars.folder = datafix.migration_folder
|
30
|
+
vars.records = records
|
31
|
+
vars_binding = vars.send(:get_binding)
|
32
|
+
|
33
|
+
generated_backup = ERB.new(backup_template, 0, "%<>")
|
34
|
+
generated_script = ERB.new(script_template, 0, "%<>")
|
35
|
+
|
36
|
+
backup_file = File.join(datafix.migration_folder, 'backup.dms').gsub!(File::SEPARATOR, File::ALT_SEPARATOR)
|
37
|
+
puts "Creating file #{backup_file}"
|
38
|
+
File.open(backup_file, 'w') {|f| f.write(generated_backup.result(vars_binding))}
|
39
|
+
|
40
|
+
script_file = File.join(datafix.migration_folder, 'script.sql').gsub!(File::SEPARATOR, File::ALT_SEPARATOR)
|
41
|
+
puts "Creating file #{script_file}"
|
42
|
+
File.open(script_file, 'w') {|f| f.write(generated_script.result(vars_binding))}
|
43
|
+
|
44
|
+
# puts File.expand_path(__FILE__)
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
<!DOCTYPE html>
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
6
|
+
<title>VooDoo Migration Email</title>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<h2>This is a header</h2>
|
10
|
+
<p>This is some text telling you about the migration that just happened. </p>
|
11
|
+
<p>Here are the steps from the migration: </p>
|
12
|
+
<ol>
|
13
|
+
<li>step one</li>
|
14
|
+
<li>step two</li>
|
15
|
+
<li>step three</li>
|
16
|
+
</ol>
|
17
|
+
<p>This is some additional information regarding the migration.</p>
|
18
|
+
<p><strong>VooDoo</strong></p>
|
19
|
+
</body>
|
20
|
+
</html>
|
data/lib/voodoo/migration.rb
CHANGED
@@ -3,28 +3,32 @@ module Voodoo
|
|
3
3
|
|
4
4
|
class Migration
|
5
5
|
|
6
|
+
attr_reader :migration_folder
|
7
|
+
attr_reader :migration_name
|
8
|
+
|
6
9
|
def initialize(name)
|
10
|
+
@migration_name = name
|
7
11
|
@migration_folder = create_folder(File.join(CONFIGURATION.migration_output_dir, name))
|
8
12
|
end
|
9
13
|
|
10
14
|
def log_folder
|
11
|
-
@log_folder = create_folder(File.join(@migration_folder, 'logs')
|
15
|
+
@log_folder = create_folder(File.join(@migration_folder, 'logs'))
|
12
16
|
end
|
13
17
|
|
14
18
|
def archive_folder
|
15
|
-
@archive_folder = create_folder(File.join(@migration_folder, 'archive')
|
19
|
+
@archive_folder = create_folder(File.join(@migration_folder, 'archive'))
|
16
20
|
end
|
17
21
|
|
18
22
|
def sql_folder
|
19
|
-
@sql_folder = create_folder(File.join(@migration_folder, 'sql')
|
23
|
+
@sql_folder = create_folder(File.join(@migration_folder, 'sql'))
|
20
24
|
end
|
21
25
|
|
22
26
|
def compare_folder(source, target)
|
23
|
-
create_folder(File.join(compare_base_folder, "#{source}_to_#{target}")
|
27
|
+
@compare_folder = create_folder(File.join(compare_base_folder, "#{source}_to_#{target}"))
|
24
28
|
end
|
25
29
|
|
26
30
|
def export_folder(source)
|
27
|
-
create_folder(File.join(project_folder, source)
|
31
|
+
@export_folder = create_folder(File.join(project_folder, source))
|
28
32
|
end
|
29
33
|
|
30
34
|
def continue?
|
@@ -34,22 +38,23 @@ module Voodoo
|
|
34
38
|
end
|
35
39
|
|
36
40
|
def copy_to_archive(archive_folder)
|
41
|
+
# add error handling
|
37
42
|
FileUtils.cp_r(@migration_folder, archive_folder, :verbose => true)
|
38
43
|
end
|
39
44
|
|
40
45
|
private
|
41
46
|
|
42
47
|
def project_folder
|
43
|
-
@project_folder = create_folder(File.join(@migration_folder, 'project')
|
48
|
+
@project_folder = create_folder(File.join(@migration_folder, 'project'))
|
44
49
|
end
|
45
50
|
|
46
51
|
def compare_base_folder
|
47
|
-
@compare_base_folder = create_folder(File.join(@migration_folder, 'compares')
|
52
|
+
@compare_base_folder = create_folder(File.join(@migration_folder, 'compares'))
|
48
53
|
end
|
49
54
|
|
50
55
|
def create_folder(folder_path)
|
51
56
|
Dir.mkdir(folder_path) unless File.exists?(folder_path)
|
52
|
-
return folder_path
|
57
|
+
return folder_path.gsub!(File::SEPARATOR, File::ALT_SEPARATOR)
|
53
58
|
end
|
54
59
|
|
55
60
|
end
|
data/lib/voodoo/peopletools.rb
CHANGED
@@ -66,7 +66,7 @@ module Voodoo
|
|
66
66
|
LOG.debug("Command line options are set to #{@command_line_options.join(" ")}")
|
67
67
|
|
68
68
|
f = IO.popen(@executable + " " + @command_line_options.join(" "))
|
69
|
-
f.readlines.each { |line|
|
69
|
+
f.readlines.each { |line| puts ("#{line.chomp}")}
|
70
70
|
f.close
|
71
71
|
|
72
72
|
@command_line_options.clear
|
@@ -12,6 +12,7 @@ module Voodoo
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def run(migration, target, sqr_name)
|
15
|
+
@sqr_name = sqr_name
|
15
16
|
append(:sqr => File.join(target.ps_home, 'sqr', sqr_name).gsub!(File::SEPARATOR, File::ALT_SEPARATOR))
|
16
17
|
append(:db_login => target.db_username + '/' + target.db_password + '@' + target.name)
|
17
18
|
append(:input => File.join(target.ps_home, 'sqr').gsub!(File::SEPARATOR, File::ALT_SEPARATOR))
|
@@ -56,8 +57,9 @@ module Voodoo
|
|
56
57
|
LOG.debug("Executable is set to #{@executable}")
|
57
58
|
LOG.debug("Command line options are set to #{@command_line_options.join(" ")}")
|
58
59
|
|
60
|
+
puts "Running #{@sqr_name}..."
|
59
61
|
f = IO.popen(@executable + " " + @command_line_options.join(" "))
|
60
|
-
f.readlines.each { |line|
|
62
|
+
f.readlines.each { |line| puts ("#{line.chomp}")}
|
61
63
|
f.close
|
62
64
|
|
63
65
|
@command_line_options.clear
|
data/lib/voodoo/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ps-voodoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-08-08 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: commander
|
16
|
-
requirement: &
|
16
|
+
requirement: &20414196 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 4.0.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *20414196
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: terminal-table
|
27
|
-
requirement: &
|
27
|
+
requirement: &20413884 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 1.4.2
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *20413884
|
36
36
|
description: A small command line utility for helping with PeopleSoft administration
|
37
37
|
email:
|
38
38
|
- jrbing@gmail.com
|
@@ -60,6 +60,10 @@ files:
|
|
60
60
|
- lib/voodoo/commands/remove.rb
|
61
61
|
- lib/voodoo/commands/run.rb
|
62
62
|
- lib/voodoo/commands/show.rb
|
63
|
+
- lib/voodoo/commands/template.rb
|
64
|
+
- lib/voodoo/commands/templates/backup.dms
|
65
|
+
- lib/voodoo/commands/templates/migration_email.erb
|
66
|
+
- lib/voodoo/commands/templates/script.sql
|
63
67
|
- lib/voodoo/migration.rb
|
64
68
|
- lib/voodoo/peopletools.rb
|
65
69
|
- lib/voodoo/peopletools/appdesigner.rb
|
@@ -88,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
92
|
version: '0'
|
89
93
|
requirements: []
|
90
94
|
rubyforge_project: ps-voodoo
|
91
|
-
rubygems_version: 1.8.
|
95
|
+
rubygems_version: 1.8.7
|
92
96
|
signing_key:
|
93
97
|
specification_version: 3
|
94
98
|
summary: Black magic utility for PeopleSoft administration
|