shredder 0.1.1 → 0.2.0
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/README.txt +2 -2
- data/bin/shredder +20 -9
- data/lib/shredder.rb +1 -1
- metadata +4 -4
data/README.txt
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'shredder'
|
4
4
|
|
5
5
|
# Shreds text.txt into test.f.1, test.f.2, test.f.3
|
6
|
-
Shredder::Files.new('
|
6
|
+
Shredder::Files.new('README.txt', ['test.f.1','test.f.2','test.f.3'] ).shred
|
7
7
|
|
8
8
|
# Sews test.f.1, test.f.2, test.f.3 into restored.f.txt
|
9
9
|
Shredder::Files.new('restored.f.txt', ['test.f.1','test.f.2','test.f.3'] ).sew
|
@@ -11,7 +11,7 @@ Shredder::Files.new('restored.f.txt', ['test.f.1','test.f.2','test.f.3'] ).sew
|
|
11
11
|
# or #
|
12
12
|
|
13
13
|
# shred streams #
|
14
|
-
reader = File.open('
|
14
|
+
reader = File.open('README.txt','r')
|
15
15
|
writers = []; ['test.s.1','test.s.2','test.s.3'].each{|writer| writers.push(File.open(writer,'wb'))}
|
16
16
|
Shredder::Streams.new(reader,writers).shred
|
17
17
|
reader.close
|
data/bin/shredder
CHANGED
@@ -3,7 +3,7 @@ require 'shredder'
|
|
3
3
|
raise "Need Shredder version ~> 0.1" if Shredder::VERSION < '0.1'
|
4
4
|
|
5
5
|
# Command line utility
|
6
|
-
class
|
6
|
+
class CommandLine
|
7
7
|
def self.version
|
8
8
|
puts Shredder::VERSION
|
9
9
|
exit(0)
|
@@ -15,9 +15,10 @@ shredder --shred sewed_file shred_file1 shred_file2... # shred a file to s
|
|
15
15
|
shredder --io --shred shred_file1 shred_file2... # shred stdin to shreds
|
16
16
|
shredder --sew sewed_file shred_file1 shred_file2... # sew shreds back to file
|
17
17
|
shredder --io --sew shred_file1 shred_file2... # sew shreds out to stdout
|
18
|
+
# --relay in sew mode will relay the first gets from stdin (used to pass on a passphrase to gpg, for example).
|
18
19
|
EOT
|
19
|
-
print "VERSION: "
|
20
|
-
|
20
|
+
print "# VERSION: "
|
21
|
+
CommandLine.version
|
21
22
|
end
|
22
23
|
|
23
24
|
def self.parse_argv
|
@@ -25,8 +26,8 @@ EOT
|
|
25
26
|
while ARGV[0]=~/^-/ do
|
26
27
|
options += ARGV.shift
|
27
28
|
end
|
28
|
-
|
29
|
-
|
29
|
+
CommandLine.version if options =~ /-v\b/ || options =~ /--version\b/ # need to allow verbose below.
|
30
|
+
CommandLine.help if ARGV.length==0 || options =~ /-h/
|
30
31
|
$verbose = (options=~/--verbose\b/)? true : false
|
31
32
|
# validate
|
32
33
|
raise "--sew or --shred ?" if !(options=~/--sew\b/) && !(options=~/--shred\b/)
|
@@ -37,8 +38,9 @@ EOT
|
|
37
38
|
end
|
38
39
|
|
39
40
|
def initialize
|
40
|
-
options =
|
41
|
-
@shredding = (options=~/--shred/)? true : false
|
41
|
+
options = CommandLine.parse_argv
|
42
|
+
@shredding = (options=~/--shred\b/)? true : false
|
43
|
+
@relay = (options=~/--relay\b/)? true : false
|
42
44
|
if options=~/--io/ then
|
43
45
|
if @shredding then
|
44
46
|
@sew = $stdin
|
@@ -56,9 +58,18 @@ EOT
|
|
56
58
|
def execute
|
57
59
|
shredder = (@sew.class == String)? Shredder::Files.new(@sew,@shreds): Shredder::Streams.new(@sew,@shreds)
|
58
60
|
begin
|
59
|
-
|
61
|
+
if @shredding then
|
62
|
+
shredder.shred
|
63
|
+
else
|
64
|
+
if @relay && (passphrase = $stdin.gets) then
|
65
|
+
# In a typical situation, we may be asked to relay a passphrase
|
66
|
+
$stdout.puts passphrase
|
67
|
+
end
|
68
|
+
shredder.sew
|
69
|
+
end
|
60
70
|
rescue StandardError
|
61
71
|
$stderr.puts $!
|
72
|
+
$stderr.puts $!.backtrace if $verbose
|
62
73
|
ensure
|
63
74
|
@shreds.each{|filehandle| filehandle.close} if !(@sew.class == String)
|
64
75
|
end
|
@@ -66,7 +77,7 @@ EOT
|
|
66
77
|
end
|
67
78
|
|
68
79
|
begin
|
69
|
-
|
80
|
+
CommandLine.new.execute
|
70
81
|
rescue StandardError
|
71
82
|
$stderr.puts $!
|
72
83
|
$stderr.puts $!.backtrace if $verbose
|
data/lib/shredder.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shredder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- carlosjhr64@gmail.com
|