cifrado 0.1.3 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f0746da846ed77bb7954fa0285936c7fcc391871
4
- data.tar.gz: 646ed7ce8284059a364373c443d00957b415bd8d
3
+ metadata.gz: 72a06074f4179b1d7c3e9912c30208c37d53ea86
4
+ data.tar.gz: 7e11beff0781e9c476dbe0a7df54e199b16712cc
5
5
  SHA512:
6
- metadata.gz: 099631ccabe814128d9cdd920761d5f930ce454bb85c9e6b97903c0449f4cf40fde243ec2f25e2408314c2a646d6a2570e07f55d0ed4ac839fc8de8c9b79739e
7
- data.tar.gz: 78b659ca0e2f3794f39f365bcfdfc2f24a0e4dd6902587bd9463ad4bb1bdaa8bdff0e3517db7094385648a5ab0e2c291ea64822a51786a5e79bbc22b2a53ec95
6
+ metadata.gz: a1c9b1336bab1b9ab5a6d0e050ddf95ade9c3b6f163c61bf26cfed830837a3af83a2149fe0ae61f5ab571f0bea2d960b298d8fd5e4d04c03ab575b0726f7df4d
7
+ data.tar.gz: b241cdd6d09ee1a5b477ba68731eb711e2f54491a1e2dae81154f1ea0c29e9dbc720365f5c689da270800e82588f9843d46d9ace42bce6f4fa64fa9f36e0a969
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ spec/reports
16
16
  test/tmp
17
17
  test/version_tmp
18
18
  tmp
19
+ tests/cifradorc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # Cifrado 0.2.0 - Wed 19 Feb 2014
2
+
3
+ * HP Cloud support. See https://github.com/rubiojr/cifrado/wiki/Providers-HPCloud
4
+ * Added `config` command. See https://github.com/rubiojr/cifrado/commit/ea291b75fc45895ddfed9077caa6c225349b3145
5
+ * Bug Fixes
6
+
1
7
  # Cifrado 0.1.3 - Tue 05 Mar 2013
2
8
 
3
9
  * Fix regresion in the last release that may break regular OpenStack accounts
data/HACKING.md ADDED
@@ -0,0 +1,6 @@
1
+ # Testing
2
+
3
+ You'll need a valid tests/cifradorc configuration to run the tests against
4
+ a reall Swift install.
5
+
6
+ Run `shindo tests` from the project root to run the tests.
data/bin/cifrado CHANGED
@@ -4,4 +4,35 @@ require 'yaml'
4
4
  require 'uri'
5
5
 
6
6
  $0 = "cifrado #{ARGV.join(' ')}"
7
+
8
+ at_exit do
9
+ include Cifrado::Utils
10
+ include Cifrado
11
+ e = $!
12
+ if e
13
+ if e.is_a? Excon::Errors::Unauthorized
14
+ Log.error "Unauthorized"
15
+ Log.error "Double check the username, password and auth_url."
16
+ elsif e.is_a? Excon::Errors::SocketError
17
+ if e.message =~ /Unable to verify certificate|hostname (was|does) not match (with )?the server/
18
+ Log.error "Unable to verify SSL certificate."
19
+ Log.error "If the server is using a self-signed certificate, try using --insecure."
20
+ Log.error "Please be aware of the security implications."
21
+ else
22
+ Log.error e.message
23
+ end
24
+ elsif e.is_a? RuntimeError
25
+ Log.error e.message
26
+ elsif e.is_a? Interrupt
27
+ Log.info
28
+ Log.info 'At your command, Sir!'
29
+ else
30
+ Log.fatal e.message
31
+ end
32
+ system 'stty echo'
33
+ prettify_backtrace e
34
+ exit! 1
35
+ end
36
+ end
37
+
7
38
  Cifrado::CLI.start ARGV, :shell => Thor::Shell::Color.new
data/cifrado.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
7
7
  gem.name = "cifrado"
8
8
  gem.version = Cifrado::VERSION
9
9
  gem.authors = ["Sergio Rubio"]
10
- gem.signing_key = File.expand_path("~/.gem/gem-private_key.pem")
10
+ #gem.signing_key = File.expand_path("~/.gem/gem-private_key.pem")
11
11
  gem.cert_chain = ["gem-public_cert.pem"]
12
12
  gem.email = ["rubiojr@frameos.org"]
13
13
  gem.description = %q{OpenStack Swift CLI with encryption support}
@@ -0,0 +1,44 @@
1
+ module Cifrado
2
+ class CLI
3
+ desc 'configs', 'List available configuration'
4
+ option :print,
5
+ :type => :string,
6
+ :desc => 'Print the configuration selected'
7
+ option :current,
8
+ :type => :boolean,
9
+ :desc => 'Print the current configuration'
10
+ def configs
11
+ cdir = Cifrado::Config.instance.config_dir
12
+
13
+ current = "#{cdir}/cifradorc"
14
+ if options[:current]
15
+ if File.exist?(current)
16
+ Log.info conceal_password(File.read("#{cdir}/cifradorc"))
17
+ return 'cifradorc'
18
+ else
19
+ raise 'No configuration available.'
20
+ end
21
+ end
22
+
23
+ configs = Dir["#{cdir}/cifradorc.*"].map do |c|
24
+ File.basename(c).gsub('cifradorc.', '')
25
+ end
26
+
27
+ selected = options[:print]
28
+ if selected and configs.include?(selected)
29
+ Log.info conceal_password(File.read("#{cdir}/cifradorc.#{selected}"))
30
+ return selected
31
+ else
32
+ raise "Config #{selected} not available." if selected
33
+ end
34
+
35
+ configs.each { |c| Log.info(c) if c !~ /bak\.\d+/ }
36
+ configs
37
+ end
38
+
39
+ private
40
+ def conceal_password(buf)
41
+ buf.gsub(/^.*password:.*$/, ':password:')
42
+ end
43
+ end
44
+ end
@@ -114,8 +114,8 @@ module Cifrado
114
114
 
115
115
  private
116
116
  def save_settings(config)
117
- config_file = File.join(ENV['HOME'], '.config/cifrado/cifradorc')
118
- FileUtils.mkdir_p File.join(ENV['HOME'], '.config/cifrado')
117
+ config_dir = Cifrado::Config.instance.config_dir
118
+ config_file = File.join(config_dir, 'cifradorc')
119
119
  if File.exist?(config_file)
120
120
  raise 'Cifrado config file exists. Refusing to overwrite.'
121
121
  else
@@ -19,7 +19,7 @@ function get_id () {
19
19
 
20
20
  echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main > /etc/apt/sources.list.d/folsom.list
21
21
  apt-get update
22
- apt-get install -y ubuntu-cloud-keyring
22
+ apt-get install -y ubuntu-cloud-keyring ntp
23
23
  apt-get update
24
24
  apt-get install -y keystone python-software-properties telnet xfsprogs pwgen ssl-cert curl wget ca-certificates tcpflow
25
25
  add-apt-repository -y ppa:bvox/ppa
@@ -2,9 +2,10 @@ module Cifrado
2
2
  class CLI
3
3
  desc "setup", "Initial Cifrado configuration"
4
4
  def setup
5
- config_file = File.join(ENV['HOME'], '.config/cifrado/cifradorc')
6
- unless File.directory?('.config/cifrado')
7
- FileUtils.mkdir_p '.config/cifrado'
5
+ config_instance = Cifrado::Config.instance
6
+ config_file = File.join(config_instance.config_dir, 'cifradorc')
7
+ unless File.directory?(config_instance.config_dir)
8
+ FileUtils.mkdir_p config_instance.config_dir
8
9
  end
9
10
  if File.exist?(config_file)
10
11
  Log.warn "Config file #{set_color config_file, :bold} already exist."
@@ -20,9 +21,9 @@ module Cifrado
20
21
 
21
22
 
22
23
  puts "Running cifrado setup..."
23
- puts "Please provide OpenStack/Rackspace credentials."
24
+ puts "Please provide OpenStack/Rackspace/HPCloud credentials."
24
25
  puts
25
- puts "Cifrado can save this settings in #{config_file}"
26
+ puts "Cifrado can save these settings in #{config_file}"
26
27
  puts "for later use."
27
28
  puts "The settings (password included) are saved unencrypted."
28
29
  puts
@@ -241,12 +241,6 @@ module Cifrado
241
241
  File.delete out
242
242
  end
243
243
 
244
- if segments_uploaded.size == 0
245
- Log.warn 'All the segments have been previously uploaded.'
246
- Log.warn 'Skipping manifest creation.'
247
- return segments_uploaded
248
- end
249
-
250
244
  # We need this for segmented uploads
251
245
  Log.debug "Adding manifest path #{target_manifest}"
252
246
  xom = "#{Fog::OpenStack.escape(container + '_segments')}/" +
@@ -256,11 +250,17 @@ module Cifrado
256
250
  encrypted_name = encrypt_filename object, secure_password
257
251
  headers['X-Object-Meta-Encrypted-Name'] = encrypted_name
258
252
  end
253
+
254
+ # Make sure the container for the object manifest exists
259
255
  client.create_directory container
260
- client.service.put_object_manifest container,
261
- target_manifest,
262
- headers
263
- segments_uploaded.insert 0, target_manifest
256
+
257
+ unless client.head(container, target_manifest)
258
+ Log.debug "Adding object manifest #{target_manifest}"
259
+ client.service.put_object_manifest container,
260
+ target_manifest,
261
+ headers
262
+ segments_uploaded.insert 0, target_manifest
263
+ end
264
264
 
265
265
  segments_uploaded
266
266
  end
data/lib/cifrado/cli.rb CHANGED
@@ -58,7 +58,17 @@ module Cifrado
58
58
  end
59
59
 
60
60
  def check_options
61
- config_file = options[:config] || File.join(ENV['HOME'], '.config/cifrado/cifradorc')
61
+ config_dir = Cifrado::Config.instance.config_dir
62
+ config_file = options[:config] || File.join(config_dir, 'cifradorc')
63
+
64
+ # Cifrado can use config shortcuts, i.e. myhost without path
65
+ # is equivalent to ~/.config/cifrado/cifradorc.myhost
66
+ #
67
+ config_shortcut = File.join(config_dir, "cifradorc.#{config_file}")
68
+ if File.exist?(config_shortcut)
69
+ config_file = config_shortcut
70
+ end
71
+
62
72
  config = {}
63
73
 
64
74
  if File.exist?(config_file)
@@ -72,6 +82,8 @@ module Cifrado
72
82
  Cifrado::Log.error "Error loading config file"
73
83
  raise e
74
84
  end
85
+ else
86
+ Log.warn "Config file #{config_file} not found."
75
87
  end
76
88
 
77
89
  config[:username] = options[:username] || config[:username]
@@ -125,33 +137,5 @@ require 'cifrado/cli/jukebox'
125
137
  require 'cifrado/cli/cinema'
126
138
  require 'cifrado/cli/saio'
127
139
  require 'cifrado/cli/version'
140
+ require 'cifrado/cli/configs'
128
141
 
129
- at_exit do
130
- include Cifrado::Utils
131
- include Cifrado
132
- e = $!
133
- if e
134
- if e.is_a? Excon::Errors::Unauthorized
135
- Log.error "Unauthorized"
136
- Log.error "Double check the username, password and auth_url."
137
- elsif e.is_a? Excon::Errors::SocketError
138
- if e.message =~ /Unable to verify certificate|hostname (was|does) not match (with )?the server/
139
- Log.error "Unable to verify SSL certificate."
140
- Log.error "If the server is using a self-signed certificate, try using --insecure."
141
- Log.error "Please be aware of the security implications."
142
- else
143
- Log.error e.message
144
- end
145
- elsif e.is_a? RuntimeError
146
- Log.error e.message
147
- elsif e.is_a? Interrupt
148
- Log.info
149
- Log.info 'At your command, Sir!'
150
- else
151
- Log.fatal e.message
152
- end
153
- system 'stty echo'
154
- prettify_backtrace e
155
- exit! 1
156
- end
157
- end
@@ -4,15 +4,27 @@ module Cifrado
4
4
  class Config
5
5
  include Singleton
6
6
 
7
- def initialize
8
- unless File.directory?(cache_dir)
9
- Log.debug "Creating cache dir: #{cache_dir}"
10
- FileUtils.mkdir_p(cache_dir)
11
- end
7
+ def init_env
8
+ Log.debug "Creating cache dir: #{cache_dir}"
9
+ FileUtils.mkdir_p(cache_dir)
10
+ Log.debug "Creating config dir: #{config_dir}"
11
+ FileUtils.mkdir_p(config_dir)
12
+ end
13
+
14
+ def cache_dir=(dir)
15
+ @cache_dir = dir
12
16
  end
13
17
 
14
18
  def cache_dir
15
- File.join(ENV['HOME'], '.cache/cifrado')
19
+ @cache_dir ||= File.join(ENV['HOME'], '.cache/cifrado')
20
+ end
21
+
22
+ def config_dir=(dir)
23
+ @config_dir = dir
24
+ end
25
+
26
+ def config_dir
27
+ @config_dir ||= File.join(ENV['HOME'], '.config/cifrado')
16
28
  end
17
29
  end
18
30
  end
@@ -13,7 +13,7 @@ module Cifrado
13
13
  # @param [String] Destination directory of the chunks
14
14
  def initialize(filename,
15
15
  chunk_number = nil,
16
- cache_dir = File.join(ENV['HOME'], '.cache/cifrado') )
16
+ cache_dir = Cifrado::Config.instance.cache_dir)
17
17
  raise ArgumentError.new unless File.exist?(filename)
18
18
  @filename = File.basename filename
19
19
  @source = filename
@@ -33,7 +33,7 @@ module Cifrado
33
33
  def head(container = nil, object = nil)
34
34
  begin
35
35
  if container and object
36
- service.head_object(container, object).headers
36
+ service.head_object(container, clean_object_name(object)).headers
37
37
  elsif container
38
38
  service.head_container(container).headers
39
39
  else
@@ -1,3 +1,3 @@
1
1
  module Cifrado
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/cifrado.rb CHANGED
@@ -31,6 +31,8 @@ module Cifrado
31
31
  Log.debug "Initializing logger"
32
32
  end
33
33
 
34
+ Cifrado::Config.instance.init_env
35
+
34
36
  end
35
37
 
36
38
  vendored_fog = File.join(File.dirname(__FILE__), 'cifrado/vendor/fog/lib')
@@ -32,6 +32,15 @@ Shindo.tests('Cifrado | CLI#upload') do
32
32
  segments = cli.upload 'cifrado-tests', obj
33
33
  segments.size == 0
34
34
  end
35
+ # Delete object manifest and test if it's added again
36
+ cli.delete test_container_name, clean_object_name(obj)
37
+ test 'object manifest is always added' do
38
+ segments = cli.upload 'cifrado-tests', obj
39
+ segments.size == 1
40
+ end
41
+ test 'object manifest exist' do
42
+ !client.head(test_container_name, obj).nil?
43
+ end
35
44
  end
36
45
  tests 'single uploads' do
37
46
  obj = create_bin_payload 1
data/tests/helper.rb CHANGED
@@ -6,6 +6,9 @@ require 'digest/md5'
6
6
 
7
7
  include Cifrado
8
8
  include Cifrado::Utils
9
+
10
+ Cifrado::Config.instance.cache_dir = File.expand_path("~/.cache/cifrado-test")
11
+ Cifrado::Config.instance.config_dir = File.expand_path(File.dirname(__FILE__))
9
12
 
10
13
  unless ENV['DEBUG']
11
14
  Cifrado::Log.level = Logger::ERROR
@@ -16,7 +19,7 @@ def fog_settings
16
19
  end
17
20
 
18
21
  def client
19
- conf = YAML.load_file File.expand_path("~/.config/cifrado/cifradorc")
22
+ conf = YAML.load_file Cifrado::Config.instance.config_dir + "/cifradorc"
20
23
  client = SwiftClient.new :username => conf[:username],
21
24
  :api_key => conf[:password],
22
25
  :auth_url => conf[:auth_url],
@@ -106,7 +109,7 @@ def cleanup
106
109
  clean_test_payloads
107
110
  clean_test_container
108
111
  Dir["/tmp/cifrado*"].each { |f| FileUtils.rm_rf f }
109
- Dir[File.join(ENV['HOME'], ".cache/cifrado") + "/*segments*"].each { |f| FileUtils.rm_rf f }
112
+ Dir["#{Cifrado::Config.instance.cache_dir}/*"].each { |f| FileUtils.rm_f f }
110
113
  end
111
114
 
112
115
  def tmpfile
@@ -5,7 +5,7 @@ Shindo.tests('Cifrado | SwiftClient#head') do
5
5
  tests 'head object' do
6
6
  test "object #{clean_object} headers available" do
7
7
  client.upload test_container_name, obj1
8
- (client.head test_container_name, clean_object_name(obj1)).is_a?(Hash)
8
+ client.head(test_container_name, obj1).is_a?(Hash)
9
9
  end
10
10
  test 'head invalid object' do
11
11
  client.head(test_container_name, SecureRandom.hex).nil?
@@ -150,7 +150,6 @@ module Fog
150
150
  'Content-Type' => 'application/json',
151
151
  'X-Auth-Token' => @auth_token
152
152
  }.merge!(params[:headers] || {}),
153
- :host => @host,
154
153
  :path => "#{@path}/#{params[:path]}",
155
154
  }), &block)
156
155
  rescue Excon::Errors::Unauthorized => error
@@ -195,7 +195,6 @@ module Fog
195
195
  :expects => [200, 204],
196
196
  :headers => {'Content-Type' => 'application/json'},
197
197
  :body => Fog::JSON.encode(request_body),
198
- :host => uri.host,
199
198
  :method => 'POST',
200
199
  :path => (uri.path and not uri.path.empty?) ? uri.path : 'v2.0'
201
200
  })
metadata CHANGED
@@ -1,160 +1,140 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cifrado
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Rubio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDNDCCAhygAwIBAgIBADANBgkqhkiG9w0BAQUFADBAMRAwDgYDVQQDDAdydWJp
14
- b2pyMRcwFQYKCZImiZPyLGQBGRYHZnJhbWVvczETMBEGCgmSJomT8ixkARkWA29y
15
- ZzAeFw0xMzAyMTIyMDU0NTFaFw0xNDAyMTIyMDU0NTFaMEAxEDAOBgNVBAMMB3J1
16
- YmlvanIxFzAVBgoJkiaJk/IsZAEZFgdmcmFtZW9zMRMwEQYKCZImiZPyLGQBGRYD
17
- b3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6gSsIib3HHQ87Dsu
18
- 9EZzKMk2oswglzatmxIbCKXTCflTFd7U4I3sinGCOPdkRmqf9vjJSv2ppFnq8D/J
19
- flUrqpvqnDSGWW4mHdCXGGkbgsmNGV2d3AYGC1fhstBTxJIvQaDibxrH5IIqBtNN
20
- wBGrOVuSb1HjqPpp+5MKcQdqYT4GW1rZkeV4FYXg+SThwjx+AlmvUKmMT9cmB2Ml
21
- JWpId4O027AjcdmOk1s1ZMIlr+ZzV0EDmqPyNFmxZm72QUsywijM9B76eVC5sdOH
22
- JKZK75oXtz0Pr++MYTlNaXHu98RzgMyOzLHM5LRCZg1f/zB9NbI2Fqm7IIfKpz0e
23
- 9KGBFQIDAQABozkwNzAJBgNVHRMEAjAAMB0GA1UdDgQWBBSO48JZEE9yvI13QfH2
24
- UVEWt45QaTALBgNVHQ8EBAMCBLAwDQYJKoZIhvcNAQEFBQADggEBABTq7sClnZ83
25
- ZeGgOUKMYq7/I5gGgZHyjIcuceMuVlhVWcjrxC1Fn7eqCZupAfveoxiNrWROmZ3C
26
- 26+nSlwMVQub9ruoGwejS1PSEBrtR56sZ78WNwUMogjzPUzDDgHZgDMneKLytSco
27
- ustJSPP8wjxoV+59JuIFY8oqFy3B0o9b7WU59RNwqdauaWye1JEWr5c18dM8VJKC
28
- 9gNNNiwrh1Q5Q3HwjjeNlUjGZmQcgceG4Xdoox89/HNm5by83mHknD++tqwa2n8F
29
- /Nnaz9wOXu6/VjBcnvFOGY8f32hVq619QiJVpV9zRgYa5M05mWRmwHByrb4yK0Ab
30
- 3GpyuMMNBMk=
31
- -----END CERTIFICATE-----
32
- date: 2013-03-05 00:00:00.000000000 Z
11
+ - gem-public_cert.pem
12
+ date: 2014-02-19 00:00:00.000000000 Z
33
13
  dependencies:
34
14
  - !ruby/object:Gem::Dependency
35
15
  name: excon
36
16
  requirement: !ruby/object:Gem::Requirement
37
17
  requirements:
38
- - - '>='
18
+ - - ">="
39
19
  - !ruby/object:Gem::Version
40
20
  version: '0'
41
21
  type: :runtime
42
22
  prerelease: false
43
23
  version_requirements: !ruby/object:Gem::Requirement
44
24
  requirements:
45
- - - '>='
25
+ - - ">="
46
26
  - !ruby/object:Gem::Version
47
27
  version: '0'
48
28
  - !ruby/object:Gem::Dependency
49
29
  name: thor
50
30
  requirement: !ruby/object:Gem::Requirement
51
31
  requirements:
52
- - - '>='
32
+ - - ">="
53
33
  - !ruby/object:Gem::Version
54
34
  version: '0.17'
55
35
  type: :runtime
56
36
  prerelease: false
57
37
  version_requirements: !ruby/object:Gem::Requirement
58
38
  requirements:
59
- - - '>='
39
+ - - ">="
60
40
  - !ruby/object:Gem::Version
61
41
  version: '0.17'
62
42
  - !ruby/object:Gem::Dependency
63
43
  name: ruby-progressbar
64
44
  requirement: !ruby/object:Gem::Requirement
65
45
  requirements:
66
- - - '>='
46
+ - - ">="
67
47
  - !ruby/object:Gem::Version
68
48
  version: '0'
69
49
  type: :runtime
70
50
  prerelease: false
71
51
  version_requirements: !ruby/object:Gem::Requirement
72
52
  requirements:
73
- - - '>='
53
+ - - ">="
74
54
  - !ruby/object:Gem::Version
75
55
  version: '0'
76
56
  - !ruby/object:Gem::Dependency
77
57
  name: multi_json
78
58
  requirement: !ruby/object:Gem::Requirement
79
59
  requirements:
80
- - - '>='
60
+ - - ">="
81
61
  - !ruby/object:Gem::Version
82
62
  version: '0'
83
63
  type: :runtime
84
64
  prerelease: false
85
65
  version_requirements: !ruby/object:Gem::Requirement
86
66
  requirements:
87
- - - '>='
67
+ - - ">="
88
68
  - !ruby/object:Gem::Version
89
69
  version: '0'
90
70
  - !ruby/object:Gem::Dependency
91
71
  name: mime-types
92
72
  requirement: !ruby/object:Gem::Requirement
93
73
  requirements:
94
- - - '>='
74
+ - - ">="
95
75
  - !ruby/object:Gem::Version
96
76
  version: '0'
97
77
  type: :runtime
98
78
  prerelease: false
99
79
  version_requirements: !ruby/object:Gem::Requirement
100
80
  requirements:
101
- - - '>='
81
+ - - ">="
102
82
  - !ruby/object:Gem::Version
103
83
  version: '0'
104
84
  - !ruby/object:Gem::Dependency
105
85
  name: yajl-ruby
106
86
  requirement: !ruby/object:Gem::Requirement
107
87
  requirements:
108
- - - '>='
88
+ - - ">="
109
89
  - !ruby/object:Gem::Version
110
90
  version: '0'
111
91
  type: :runtime
112
92
  prerelease: false
113
93
  version_requirements: !ruby/object:Gem::Requirement
114
94
  requirements:
115
- - - '>='
95
+ - - ">="
116
96
  - !ruby/object:Gem::Version
117
97
  version: '0'
118
98
  - !ruby/object:Gem::Dependency
119
99
  name: formatador
120
100
  requirement: !ruby/object:Gem::Requirement
121
101
  requirements:
122
- - - '>='
102
+ - - ">="
123
103
  - !ruby/object:Gem::Version
124
104
  version: '0'
125
105
  type: :runtime
126
106
  prerelease: false
127
107
  version_requirements: !ruby/object:Gem::Requirement
128
108
  requirements:
129
- - - '>='
109
+ - - ">="
130
110
  - !ruby/object:Gem::Version
131
111
  version: '0'
132
112
  - !ruby/object:Gem::Dependency
133
113
  name: shexy
134
114
  requirement: !ruby/object:Gem::Requirement
135
115
  requirements:
136
- - - '>='
116
+ - - ">="
137
117
  - !ruby/object:Gem::Version
138
118
  version: '0'
139
119
  type: :runtime
140
120
  prerelease: false
141
121
  version_requirements: !ruby/object:Gem::Requirement
142
122
  requirements:
143
- - - '>='
123
+ - - ">="
144
124
  - !ruby/object:Gem::Version
145
125
  version: '0'
146
126
  - !ruby/object:Gem::Dependency
147
127
  name: shindo
148
128
  requirement: !ruby/object:Gem::Requirement
149
129
  requirements:
150
- - - '>='
130
+ - - ">="
151
131
  - !ruby/object:Gem::Version
152
132
  version: '0'
153
133
  type: :development
154
134
  prerelease: false
155
135
  version_requirements: !ruby/object:Gem::Requirement
156
136
  requirements:
157
- - - '>='
137
+ - - ">="
158
138
  - !ruby/object:Gem::Version
159
139
  version: '0'
160
140
  description: OpenStack Swift CLI with encryption support
@@ -165,9 +145,10 @@ executables:
165
145
  extensions: []
166
146
  extra_rdoc_files: []
167
147
  files:
168
- - .gitignore
148
+ - ".gitignore"
169
149
  - CHANGELOG.md
170
150
  - Gemfile
151
+ - HACKING.md
171
152
  - LICENSE.txt
172
153
  - README.md
173
154
  - RELEASE.md
@@ -179,6 +160,7 @@ files:
179
160
  - lib/cifrado.rb
180
161
  - lib/cifrado/cli.rb
181
162
  - lib/cifrado/cli/cinema.rb
163
+ - lib/cifrado/cli/configs.rb
182
164
  - lib/cifrado/cli/delete.rb
183
165
  - lib/cifrado/cli/download.rb
184
166
  - lib/cifrado/cli/jukebox.rb
@@ -540,19 +522,18 @@ require_paths:
540
522
  - lib
541
523
  required_ruby_version: !ruby/object:Gem::Requirement
542
524
  requirements:
543
- - - '>='
525
+ - - ">="
544
526
  - !ruby/object:Gem::Version
545
527
  version: '0'
546
528
  required_rubygems_version: !ruby/object:Gem::Requirement
547
529
  requirements:
548
- - - '>='
530
+ - - ">="
549
531
  - !ruby/object:Gem::Version
550
532
  version: '0'
551
533
  requirements: []
552
534
  rubyforge_project:
553
- rubygems_version: 2.0.0
535
+ rubygems_version: 2.2.0
554
536
  signing_key:
555
537
  specification_version: 4
556
538
  summary: OpenStack Swift CLI with encryption support
557
539
  test_files: []
558
- has_rdoc:
checksums.yaml.gz.sig DELETED
@@ -1,2 +0,0 @@
1
- �L������;­�Z�)ī��S��x�¨�mӉy"�k��
2
- �]���:�ԡ3y?�vܹ`���o*]3�Bd�����*Z��i� �at�C�3��xu�<v���"�_����Z�H O����h�~�JE��o�P���H�����Y���]�VQ���y4����=�UY��̳W��LW�1rƭ��[�Baq�8Y��t䈩?b�%����L��[ ��r�[�T����|�h1��r&/��>�#��J�c�Y���
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
@@ -1 +0,0 @@
1
- ����,N���G�UU2�|�N�m}��&67k�"��P.���(�p���B�4i�&� ��)�Hq�.l����)a��^.jUv�e�;��nJ+N���=�ARnnF���`$���.:�8�2)y����{�o��)��d�U�C�fQ4�� ��G+>�ӿZ rw�c&U��? �GQ��3])�tf��o_��z�5��Z�"'֭A��jM�茔)|=�'�;���U