encbs 0.1.1 → 0.1.2

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