postmodern 0.0.10 → 0.0.11
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.
- checksums.yaml +4 -4
- data/bin/postmodern +2 -34
- data/lib/postmodern.rb +0 -1
- data/lib/postmodern/command.rb +37 -0
- data/lib/postmodern/dummy.rb +29 -0
- data/lib/postmodern/runner.rb +22 -0
- data/lib/postmodern/version.rb +1 -1
- data/lib/postmodern/wal.rb +0 -20
- data/lib/postmodern/wal/archive.rb +58 -2
- data/lib/postmodern/wal/restore.rb +2 -2
- data/spec/features/archive_spec.rb +80 -0
- data/spec/features/dummy_spec.rb +24 -0
- data/spec/features/restore_spec.rb +45 -0
- data/spec/postmodern/runner_spec.rb +30 -0
- data/spec/postmodern/wal/archive_spec.rb +2 -1
- data/spec/postmodern/wal/restore_spec.rb +40 -0
- metadata +15 -6
- data/lib/postmodern/errors.rb +0 -4
- data/lib/postmodern/wal/base.rb +0 -34
- data/spec/bin/postmodern_spec.rb +0 -67
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15bd95a1daf5a24f06fcfa1645094b3bd1a76c0c
|
4
|
+
data.tar.gz: 60aeb0096180e784f4e13e812075319523609823
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fac44addd806dc9688c1cf5a076c2bed5b6ebf6aa44c58d1c78357a9c4046b3735aa13317b0fa890546f6202d054c3a2971bfb7806c09b4cfa5f13a78a16b0f0
|
7
|
+
data.tar.gz: bc2afb31d22804a418ed917b5bae2d1422cf4740b41ab3cdab0508a4edbaa2a12566afde2c6c445e16fc6f3e5c51504e4d211230baa59e0281c0a6be8adcb836
|
data/bin/postmodern
CHANGED
@@ -2,38 +2,6 @@
|
|
2
2
|
|
3
3
|
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
4
4
|
|
5
|
-
require 'postmodern/
|
6
|
-
require 'postmodern/wal'
|
7
|
-
require 'optparse'
|
5
|
+
require 'postmodern/runner'
|
8
6
|
|
9
|
-
|
10
|
-
parser = OptionParser.new do |opts|
|
11
|
-
opts.banner = "Usage: postmodern (archive|restore) <options>"
|
12
|
-
|
13
|
-
opts.on('-f', '--filename FILE', 'File name to archive') do |o|
|
14
|
-
options[:file] = o
|
15
|
-
end
|
16
|
-
|
17
|
-
opts.on('-p', '--path PATH', 'Path name of file to archive') do |o|
|
18
|
-
options[:path] = o
|
19
|
-
end
|
20
|
-
|
21
|
-
opts.on_tail("-h", "--help", "Show this message") do
|
22
|
-
puts opts
|
23
|
-
exit
|
24
|
-
end
|
25
|
-
|
26
|
-
opts.on_tail("--version", "Show version") do
|
27
|
-
require 'postmodern/version'
|
28
|
-
puts Postmodern::VERSION
|
29
|
-
exit
|
30
|
-
end
|
31
|
-
end
|
32
|
-
parser.parse!
|
33
|
-
|
34
|
-
begin
|
35
|
-
Postmodern::WAL.run(ARGV.first, options)
|
36
|
-
rescue Postmodern::Error => e
|
37
|
-
puts e.message
|
38
|
-
puts parser.to_s
|
39
|
-
end
|
7
|
+
Postmodern::Runner.run(ARGV)
|
data/lib/postmodern.rb
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
module Postmodern
|
4
|
+
class Command
|
5
|
+
def self.required_options
|
6
|
+
@required_options ||= []
|
7
|
+
end
|
8
|
+
|
9
|
+
def parser
|
10
|
+
OptionParser.new
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_reader :options
|
14
|
+
|
15
|
+
def initialize(args)
|
16
|
+
@options = {}
|
17
|
+
|
18
|
+
parse_args(args)
|
19
|
+
validate!
|
20
|
+
end
|
21
|
+
|
22
|
+
def run
|
23
|
+
end
|
24
|
+
|
25
|
+
def validate!
|
26
|
+
if (self.class.required_options - self.options.keys).any?
|
27
|
+
puts parser
|
28
|
+
exit 1
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def parse_args(args)
|
33
|
+
parser.parse!(args)
|
34
|
+
self.options
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'postmodern/command'
|
2
|
+
|
3
|
+
module Postmodern
|
4
|
+
class Dummy < Command
|
5
|
+
def parser
|
6
|
+
@parser ||= OptionParser.new do |opts|
|
7
|
+
opts.banner = "Usage: postmodern <command> <options>"
|
8
|
+
|
9
|
+
opts.separator ""
|
10
|
+
opts.separator "Available commands:"
|
11
|
+
opts.separator " archive"
|
12
|
+
opts.separator " restore"
|
13
|
+
opts.separator ""
|
14
|
+
opts.separator "Options:"
|
15
|
+
|
16
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
17
|
+
puts opts
|
18
|
+
exit
|
19
|
+
end
|
20
|
+
|
21
|
+
opts.on_tail("--version", "Show version") do
|
22
|
+
require 'postmodern/version'
|
23
|
+
puts Postmodern::VERSION
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'postmodern/wal'
|
2
|
+
require 'postmodern/dummy'
|
3
|
+
|
4
|
+
module Postmodern
|
5
|
+
module Runner
|
6
|
+
attr_reader :argv
|
7
|
+
|
8
|
+
DEFAULT_COMMAND = Dummy
|
9
|
+
COMMAND_MAP = {
|
10
|
+
'archive' => WAL::Archive,
|
11
|
+
'restore' => WAL::Restore
|
12
|
+
}.freeze
|
13
|
+
|
14
|
+
def self.run(args)
|
15
|
+
command_for(args.first).new(args).run
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.command_for(command)
|
19
|
+
COMMAND_MAP[command] || DEFAULT_COMMAND
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/postmodern/version.rb
CHANGED
data/lib/postmodern/wal.rb
CHANGED
@@ -1,23 +1,3 @@
|
|
1
1
|
require 'postmodern/wal/archive'
|
2
2
|
require 'postmodern/wal/restore'
|
3
|
-
require 'postmodern/errors'
|
4
3
|
|
5
|
-
module Postmodern
|
6
|
-
module WAL
|
7
|
-
COMMANDS = {
|
8
|
-
'archive' => Postmodern::WAL::Archive,
|
9
|
-
'restore' => Postmodern::WAL::Restore
|
10
|
-
}
|
11
|
-
|
12
|
-
def self.run(command, options)
|
13
|
-
validate!(options)
|
14
|
-
COMMANDS[command].new(options[:file], options[:path]).run
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.validate!(options)
|
18
|
-
unless options[:file] and options[:path]
|
19
|
-
raise Postmodern::Error.new('Missing required options')
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,8 +1,64 @@
|
|
1
|
-
|
1
|
+
require 'postmodern/command'
|
2
2
|
|
3
3
|
module Postmodern
|
4
4
|
module WAL
|
5
|
-
class Archive <
|
5
|
+
class Archive < Postmodern::Command
|
6
|
+
required_options << :file
|
7
|
+
required_options << :path
|
8
|
+
|
9
|
+
def parser
|
10
|
+
@parser ||= OptionParser.new do |opts|
|
11
|
+
opts.banner = "Usage: postmodern (archive|restore) <options>"
|
12
|
+
|
13
|
+
opts.on('-f', '--filename FILE', 'File name of xlog') do |o|
|
14
|
+
self.options[:file] = o
|
15
|
+
end
|
16
|
+
|
17
|
+
opts.on('-p', '--path PATH', 'Path of xlog file') do |o|
|
18
|
+
self.options[:path] = o
|
19
|
+
end
|
20
|
+
|
21
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
22
|
+
puts opts
|
23
|
+
exit
|
24
|
+
end
|
25
|
+
|
26
|
+
opts.on_tail("--version", "Show version") do
|
27
|
+
require 'postmodern/version'
|
28
|
+
puts Postmodern::VERSION
|
29
|
+
exit
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def run
|
35
|
+
if local_script_exists?
|
36
|
+
IO.popen("#{local_script} #{path} #{filename}",
|
37
|
+
env: {
|
38
|
+
'WAL_ARCHIVE_PATH' => path,
|
39
|
+
'WAL_ARCHIVE_FILE' => filename,
|
40
|
+
'PATH' => ENV['PATH']
|
41
|
+
}) { |f| puts f.gets }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def path
|
48
|
+
@options[:path]
|
49
|
+
end
|
50
|
+
|
51
|
+
def filename
|
52
|
+
@options[:file]
|
53
|
+
end
|
54
|
+
|
55
|
+
def local_script_exists?
|
56
|
+
system({'PATH' => ENV['PATH']}, "which #{local_script} >/dev/null 2>/dev/null")
|
57
|
+
end
|
58
|
+
|
59
|
+
def local_script
|
60
|
+
'postmodern_archive.local'
|
61
|
+
end
|
6
62
|
end
|
7
63
|
end
|
8
64
|
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'archive help' do
|
4
|
+
it 'responds' do
|
5
|
+
expect(`bin/postmodern archive --help`).to eq <<-END
|
6
|
+
Usage: postmodern (archive|restore) <options>
|
7
|
+
-f, --filename FILE File name of xlog
|
8
|
+
-p, --path PATH Path of xlog file
|
9
|
+
-h, --help Show this message
|
10
|
+
--version Show version
|
11
|
+
END
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'archive' do
|
16
|
+
let(:command) { `bin/postmodern archive --path filepath --filename filename` }
|
17
|
+
|
18
|
+
let(:usage) { <<-END
|
19
|
+
Usage: postmodern (archive|restore) <options>
|
20
|
+
-f, --filename FILE File name of xlog
|
21
|
+
-p, --path PATH Path of xlog file
|
22
|
+
-h, --help Show this message
|
23
|
+
--version Show version
|
24
|
+
END
|
25
|
+
}
|
26
|
+
|
27
|
+
before do
|
28
|
+
double_cmd('postmodern_archive.local', exit: 0)
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'validations' do
|
32
|
+
context 'with no --path' do
|
33
|
+
let(:command) { `bin/postmodern archive --filename filename` }
|
34
|
+
|
35
|
+
it 'fails' do
|
36
|
+
expect { command }.to have_exit_status(1)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'prints usage' do
|
40
|
+
expect(command).to eq(usage)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context 'with no --filename' do
|
45
|
+
let(:command) { `bin/postmodern archive --path path` }
|
46
|
+
|
47
|
+
it 'fails' do
|
48
|
+
expect { command }.to have_exit_status(1)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'prints usage' do
|
52
|
+
expect(command).to eq(usage)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'when local script is present' do
|
58
|
+
before { double_cmd('which postmodern_archive.local', exit: 0) }
|
59
|
+
|
60
|
+
it 'succeeds' do
|
61
|
+
expect { command }.to have_exit_status(0)
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'calls a local file with file name and path' do
|
65
|
+
expect { command }.to shellout('postmodern_archive.local filepath filename')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'when local script is not present' do
|
70
|
+
before { double_cmd('which postmodern_archive.local', exit: 1) }
|
71
|
+
|
72
|
+
it 'succeeds' do
|
73
|
+
expect { command }.to have_exit_status(0)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'does nothing' do
|
77
|
+
expect { command }.not_to shellout('pg_wal_archive.local filepath filename')
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'postmodern/version'
|
3
|
+
|
4
|
+
describe 'dummy help' do
|
5
|
+
it 'responds with usage info' do
|
6
|
+
expect(`bin/postmodern --help`).to eq <<-END
|
7
|
+
Usage: postmodern <command> <options>
|
8
|
+
|
9
|
+
Available commands:
|
10
|
+
archive
|
11
|
+
restore
|
12
|
+
|
13
|
+
Options:
|
14
|
+
-h, --help Show this message
|
15
|
+
--version Show version
|
16
|
+
END
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'dummy version' do
|
21
|
+
it 'responds with the Postmodern version' do
|
22
|
+
expect(`bin/postmodern --version`).to match(Postmodern::VERSION)
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'restore help' do
|
4
|
+
it 'responds' do
|
5
|
+
expect(`bin/postmodern restore --help`).to eq <<-END
|
6
|
+
Usage: postmodern (archive|restore) <options>
|
7
|
+
-f, --filename FILE File name of xlog
|
8
|
+
-p, --path PATH Path of xlog file
|
9
|
+
-h, --help Show this message
|
10
|
+
--version Show version
|
11
|
+
END
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'restore' do
|
16
|
+
let(:command) { `bin/postmodern restore --path filepath --filename filename` }
|
17
|
+
|
18
|
+
before do
|
19
|
+
double_cmd('postmodern_restore.local')
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'when local script is present' do
|
23
|
+
before { double_cmd('which', exit: 0) }
|
24
|
+
|
25
|
+
it 'succeeds' do
|
26
|
+
expect { command }.to have_exit_status(0)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'calls a local file with file name and path' do
|
30
|
+
expect { command }.to shellout('postmodern_restore.local filepath filename')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when local script is not present' do
|
35
|
+
before { double_cmd('which', exit: 1) }
|
36
|
+
|
37
|
+
it 'succeeds' do
|
38
|
+
expect { command }.to have_exit_status(0)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'does nothing' do
|
42
|
+
expect { command }.not_to shellout('pg_wal_restore.local filepath filename')
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'postmodern/runner'
|
3
|
+
|
4
|
+
describe Postmodern::Runner do
|
5
|
+
|
6
|
+
describe '.command' do
|
7
|
+
it 'chooses archiver' do
|
8
|
+
expect(Postmodern::Runner.command_for('archive')).to be Postmodern::WAL::Archive
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'chooses restorer' do
|
12
|
+
expect(Postmodern::Runner.command_for('restore')).to be Postmodern::WAL::Restore
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'defaults to dummy' do
|
16
|
+
expect(Postmodern::Runner.command_for('ljfaldf')).to be Postmodern::Dummy
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '.run' do
|
21
|
+
it 'runs the command class' do
|
22
|
+
args = ['blahrgh', 'first', 'second']
|
23
|
+
dummy_class = double
|
24
|
+
expect(Postmodern::Runner).to receive(:command_for).and_return(dummy_class)
|
25
|
+
expect(dummy_class).to receive(:new).with(args).and_return(dummy_class)
|
26
|
+
expect(dummy_class).to receive(:run)
|
27
|
+
Postmodern::Runner.run(args)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -6,8 +6,9 @@ describe Postmodern::WAL::Archive do
|
|
6
6
|
|
7
7
|
let(:filename) { "some_file" }
|
8
8
|
let(:path) { "/path/to/file" }
|
9
|
+
let(:arguments) { %W(--filename #{filename} --path #{path}) }
|
9
10
|
|
10
|
-
subject(:archiver) { Postmodern::WAL::Archive.new(
|
11
|
+
subject(:archiver) { Postmodern::WAL::Archive.new(arguments) }
|
11
12
|
|
12
13
|
describe '#run' do
|
13
14
|
let(:expected_command) { "postmodern_archive.local #{path} #{filename}" }
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'postmodern/wal/restore'
|
3
|
+
|
4
|
+
describe Postmodern::WAL::Restore do
|
5
|
+
before { allow(IO).to receive(:popen) }
|
6
|
+
|
7
|
+
let(:filename) { "some_file" }
|
8
|
+
let(:path) { "/path/to/file" }
|
9
|
+
let(:arguments) { %W(--filename #{filename} --path #{path}) }
|
10
|
+
|
11
|
+
subject(:restorer) { Postmodern::WAL::Restore.new(arguments) }
|
12
|
+
|
13
|
+
describe '#run' do
|
14
|
+
let(:expected_command) { "postmodern_restore.local #{path} #{filename}" }
|
15
|
+
|
16
|
+
context 'when local script exists' do
|
17
|
+
before { double_cmd('which postmodern_restore.local', exit: 0) }
|
18
|
+
|
19
|
+
it 'executes postmodern_restore.local with filename and path' do
|
20
|
+
restorer.run
|
21
|
+
expect(IO).to have_received(:popen).with(expected_command, env:
|
22
|
+
{
|
23
|
+
'WAL_ARCHIVE_PATH' => path,
|
24
|
+
'WAL_ARCHIVE_FILE' => filename,
|
25
|
+
'PATH' => anything
|
26
|
+
}
|
27
|
+
)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'when local script does not exist' do
|
32
|
+
before { double_cmd('which postmodern_restore.local', exit: 1) }
|
33
|
+
|
34
|
+
it 'executes postmodern_restore.local with filename and path' do
|
35
|
+
restorer.run
|
36
|
+
expect(IO).not_to have_received(:popen)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: postmodern
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Saxby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -56,15 +56,20 @@ files:
|
|
56
56
|
- Rakefile
|
57
57
|
- bin/postmodern
|
58
58
|
- lib/postmodern.rb
|
59
|
-
- lib/postmodern/
|
59
|
+
- lib/postmodern/command.rb
|
60
|
+
- lib/postmodern/dummy.rb
|
61
|
+
- lib/postmodern/runner.rb
|
60
62
|
- lib/postmodern/version.rb
|
61
63
|
- lib/postmodern/wal.rb
|
62
64
|
- lib/postmodern/wal/archive.rb
|
63
|
-
- lib/postmodern/wal/base.rb
|
64
65
|
- lib/postmodern/wal/restore.rb
|
65
66
|
- postmodern.gemspec
|
66
|
-
- spec/
|
67
|
+
- spec/features/archive_spec.rb
|
68
|
+
- spec/features/dummy_spec.rb
|
69
|
+
- spec/features/restore_spec.rb
|
70
|
+
- spec/postmodern/runner_spec.rb
|
67
71
|
- spec/postmodern/wal/archive_spec.rb
|
72
|
+
- spec/postmodern/wal/restore_spec.rb
|
68
73
|
- spec/spec_helper.rb
|
69
74
|
homepage: https://github.com/wanelo/postmodern
|
70
75
|
licenses:
|
@@ -91,7 +96,11 @@ signing_key:
|
|
91
96
|
specification_version: 4
|
92
97
|
summary: Tools for managing PostgreSQL
|
93
98
|
test_files:
|
94
|
-
- spec/
|
99
|
+
- spec/features/archive_spec.rb
|
100
|
+
- spec/features/dummy_spec.rb
|
101
|
+
- spec/features/restore_spec.rb
|
102
|
+
- spec/postmodern/runner_spec.rb
|
95
103
|
- spec/postmodern/wal/archive_spec.rb
|
104
|
+
- spec/postmodern/wal/restore_spec.rb
|
96
105
|
- spec/spec_helper.rb
|
97
106
|
has_rdoc:
|
data/lib/postmodern/errors.rb
DELETED
data/lib/postmodern/wal/base.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
module Postmodern
|
2
|
-
module WAL
|
3
|
-
class Base
|
4
|
-
attr_reader :filename, :path
|
5
|
-
|
6
|
-
def initialize(filename, path)
|
7
|
-
@filename = filename
|
8
|
-
@path = path
|
9
|
-
end
|
10
|
-
|
11
|
-
def run
|
12
|
-
if local_script_exists?
|
13
|
-
IO.popen("#{local_script} #{path} #{filename}",
|
14
|
-
env: {
|
15
|
-
'WAL_ARCHIVE_PATH' => path,
|
16
|
-
'WAL_ARCHIVE_FILE' => filename,
|
17
|
-
'PATH' => ENV['PATH']
|
18
|
-
})
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def local_script_exists?
|
25
|
-
`which #{local_script} >/dev/null 2>/dev/null`
|
26
|
-
$?.exitstatus == 0
|
27
|
-
end
|
28
|
-
|
29
|
-
def local_script
|
30
|
-
'postmodern_archive.local'
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
data/spec/bin/postmodern_spec.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'postmodern' do
|
4
|
-
describe 'archive' do
|
5
|
-
let(:command) { `bin/postmodern archive --path filepath --filename filename` }
|
6
|
-
|
7
|
-
before do
|
8
|
-
double_cmd('postmodern_archive.local')
|
9
|
-
end
|
10
|
-
|
11
|
-
context 'when local script is present' do
|
12
|
-
before { double_cmd('which', exit: 0) }
|
13
|
-
|
14
|
-
it 'succeeds' do
|
15
|
-
expect { command }.to have_exit_status(0)
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'calls a local file with file name and path' do
|
19
|
-
expect { command }.to shellout('postmodern_archive.local filepath filename')
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context 'when local script is not present' do
|
24
|
-
before { double_cmd('which', exit: 1) }
|
25
|
-
|
26
|
-
it 'succeeds' do
|
27
|
-
expect { command }.to have_exit_status(0)
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'does nothing' do
|
31
|
-
expect { command }.not_to shellout('pg_wal_archive.local filepath filename')
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe 'restore' do
|
37
|
-
let(:command) { `bin/postmodern restore --path filepath --filename filename` }
|
38
|
-
|
39
|
-
before do
|
40
|
-
double_cmd('postmodern_restore.local')
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'when local script is present' do
|
44
|
-
before { double_cmd('which', exit: 0) }
|
45
|
-
|
46
|
-
it 'succeeds' do
|
47
|
-
expect { command }.to have_exit_status(0)
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'calls a local file with file name and path' do
|
51
|
-
expect { command }.to shellout('postmodern_restore.local filepath filename')
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
context 'when local script is not present' do
|
56
|
-
before { double_cmd('which', exit: 1) }
|
57
|
-
|
58
|
-
it 'succeeds' do
|
59
|
-
expect { command }.to have_exit_status(0)
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'does nothing' do
|
63
|
-
expect { command }.not_to shellout('pg_wal_restore.local filepath filename')
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|