encbs 0.1.1 → 0.1.2

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.
Files changed (5) hide show
  1. data/VERSION +1 -1
  2. data/bin/encbs +30 -15
  3. data/encbs.gemspec +3 -2
  4. data/lib/encbsconfig.rb +48 -0
  5. metadata +4 -3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
data/bin/encbs CHANGED
@@ -16,11 +16,12 @@ safe_require do
16
16
  end
17
17
 
18
18
  require 'backup'
19
+ require 'encbsconfig'
19
20
 
20
21
  opts = Slop.parse :help => true do
21
22
  on :a, :add, "Add path to backup", true
22
23
  on :b, :bucket, "Set Amazon S3 bucket to backup", true
23
- on :c, :config, "Use config file to upload backup", true #TODO
24
+ on :c, :config, "Use config file to upload backup", true
24
25
  on :colorize, "Colorize print to console"
25
26
  on :d, :date, "Date for backup restore (default: last)", true
26
27
  on :g, :generate, "Generate RSA keys (option: 4096, 2048)", true
@@ -34,20 +35,26 @@ opts = Slop.parse :help => true do
34
35
  on :s, :secret, "Set API secret to access Amazon S3", true
35
36
  on :t, :to, "Path to recovery (default: /)", true
36
37
  on :token, "RSA Key to encrypt/decrypt backup data", true
37
- on :threads, "Set count of thread (default: 1)", true
38
38
  on :v, :verbose, "Verbose mode"
39
39
 
40
40
  banner "Usage:\n $ encbs [options]\n\nOptions:"
41
41
  end
42
42
 
43
- if ARGV.empty?
44
- puts opts.help
43
+ @config = EncbsConfig.new
45
44
 
46
- exit
45
+ if ARGV.empty?
46
+ if File.exists?("#{Dir.getwd}/Encbsfile")
47
+ @config.load "#{Dir.getwd}/Encbsfile"
48
+ else
49
+ puts opts.help
50
+ exit
51
+ end
47
52
  end
48
53
 
49
- $PRINT_VERBOSE = opts.verbose?
50
- $COLORIZE = opts.colorize?
54
+ @config.load opts[:config] if opts.config?
55
+
56
+ $PRINT_VERBOSE = @config.verbose || opts.verbose?
57
+ $COLORIZE = @config.colorize || opts.colorize?
51
58
 
52
59
  if opts.generate?
53
60
  bits = opts[:generate].to_i
@@ -68,18 +75,20 @@ if opts.local?
68
75
  @backup = Backup::Instance.new opts[:local]
69
76
  else
70
77
  [:key, :secret, :bucket].each do |arg|
71
- puts_fail "Argument '--#{arg}' should not be empty" if opts[arg].nil?
78
+ if opts[arg].nil? and @config.send(arg).nil?
79
+ puts_fail "Argument '--#{arg}' should not be empty"
80
+ end
72
81
  end
73
82
  @backup = Backup::Instance.new(
74
83
  "backups",
75
84
  true,
76
- :bucket => opts[:bucket],
77
- :key => opts[:key],
78
- :secret => opts[:secret]
85
+ :bucket => @config.bucket || opts[:bucket],
86
+ :key => @config.key || opts[:key],
87
+ :secret => @config.secret || opts[:secret]
79
88
  )
80
89
  end
81
90
 
82
- @backup.hostname = opts[:hostname] if opts.hostname?
91
+ @backup.hostname = @config.hostname || (opts[:hostname] if opts.hostname?)
83
92
 
84
93
  if opts.list?
85
94
  jars_list = @backup.jars
@@ -96,7 +105,13 @@ if opts.list?
96
105
  exit
97
106
  end
98
107
 
99
- @backup.key = opts[:token] if opts.token?
108
+ if @config.token || opts.token?
109
+ key = @config.token || opts[:token]
110
+
111
+ puts_fail "Key #{key.dark_green} not found" unless File.exists? key
112
+
113
+ @backup.key = key
114
+ end
100
115
 
101
116
  if opts.date?
102
117
  date = opts[:date].split("-")
@@ -192,8 +207,8 @@ if opts.rescue?
192
207
  exit
193
208
  end
194
209
 
195
- if opts.add?
196
- paths = opts[:add].split(" ")
210
+ if @config.paths || opts.add?
211
+ paths = @config.paths.split(" ") || opts[:add].split(" ")
197
212
 
198
213
  paths = paths.map do |path|
199
214
  path = File.expand_path path
data/encbs.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{encbs}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Timothy Klim"]
12
- s.date = %q{2011-05-11}
12
+ s.date = %q{2011-05-13}
13
13
  s.default_executable = %q{encbs}
14
14
  s.description = %q{Simple backup system for pushing into cloud}
15
15
  s.email = %q{klimtimothy@gmail.com}
@@ -34,6 +34,7 @@ Gem::Specification.new do |s|
34
34
  "lib/backup/jar.rb",
35
35
  "lib/backup/timestamp.rb",
36
36
  "lib/crypto.rb",
37
+ "lib/encbsconfig.rb",
37
38
  "lib/helpers.rb",
38
39
  "test/fixtures/etc/.hide",
39
40
  "test/fixtures/etc/root/file",
@@ -0,0 +1,48 @@
1
+ class EncbsConfig
2
+ attr_reader :paths, :bucket, :colorize, :hostname, :increment, :key,
3
+ :secret, :token, :verbose
4
+
5
+ def initialize
6
+ @paths = ""
7
+ end
8
+
9
+ def load(path)
10
+ eval "#{open(path).read}"
11
+ end
12
+
13
+ def use_hostname(attr)
14
+ @hostname = attr
15
+ end
16
+
17
+ def add(attr)
18
+ @paths += " #{attr}"
19
+ end
20
+
21
+ def colorize!
22
+ @colorize = true
23
+ end
24
+
25
+ def public_key(attr)
26
+ @token = attr
27
+ end
28
+
29
+ def increment!
30
+ @increment = true
31
+ end
32
+
33
+ def aws_key(attr)
34
+ @key = attr
35
+ end
36
+
37
+ def aws_secret(attr)
38
+ @secret = attr
39
+ end
40
+
41
+ def aws_bucket(attr)
42
+ @bucket = attr
43
+ end
44
+
45
+ def verbose!
46
+ @verbose = true
47
+ end
48
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: encbs
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.1
5
+ version: 0.1.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Timothy Klim
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-11 00:00:00 +04:00
13
+ date: 2011-05-13 00:00:00 +04:00
14
14
  default_executable: encbs
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -104,6 +104,7 @@ files:
104
104
  - lib/backup/jar.rb
105
105
  - lib/backup/timestamp.rb
106
106
  - lib/crypto.rb
107
+ - lib/encbsconfig.rb
107
108
  - lib/helpers.rb
108
109
  - test/fixtures/etc/.hide
109
110
  - test/fixtures/etc/root/file
@@ -127,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
128
  requirements:
128
129
  - - ">="
129
130
  - !ruby/object:Gem::Version
130
- hash: -2711619165124038743
131
+ hash: -215227041177013415
131
132
  segments:
132
133
  - 0
133
134
  version: "0"