bwcli 1.0.0 → 2.0.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 +4 -4
- data/README.md +4 -0
- data/bwcli.gemspec +3 -1
- data/lib/bwcli/config.rb +2 -2
- data/lib/bwcli/configuration.rb +50 -20
- data/lib/bwcli/me.rb +2 -1
- data/lib/bwcli/projects.rb +4 -3
- data/lib/bwcli/version.rb +3 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef8e740832b3c56470d00e388264cefe5c4cfed0
|
4
|
+
data.tar.gz: 694d79bd4663a392de3e750479ea5ea8041aa10c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c69167c5cdfa29a040411883155782e9fcaf7573646ef602a778b2ba1cfb56c7963b90a7bbda4800338d57c91dd96ff6e5aca3cedd7449b4f0fe55202b24779
|
7
|
+
data.tar.gz: c7f23b04f08e6daba85fa965080b5db1bb24385625cbc7f97870d019fb5ebadd72188030cc601bff2d149e4c6e42dffdcb460599adc788461c88c1952c30e928
|
data/README.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
[](http://badge.fury.io/rb/bwcli)
|
2
|
+
[](https://gemnasium.com/jonathanchrisp/bwcli)
|
3
|
+
[](https://codeclimate.com/github/jonathanchrisp/bwcli)
|
4
|
+
|
1
5
|
# bwcli
|
2
6
|
|
3
7
|
__PLEASE NOTE THAT THIS PROJECT IS NOT OFFICIALLY SUPPORTED BY BRANDWATCH__
|
data/bwcli.gemspec
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/lib/bwcli/version"
|
2
|
+
|
1
3
|
Gem::Specification.new do |s|
|
2
4
|
s.name = 'bwcli'
|
3
|
-
s.version =
|
5
|
+
s.version = BWCLI::VERSION
|
4
6
|
s.date = '2013-08-15'
|
5
7
|
s.summary = 'Brandwatch CLI'
|
6
8
|
s.description = 'A CLI interface to interact with the Brandwatch v2 API'
|
data/lib/bwcli/config.rb
CHANGED
@@ -41,10 +41,10 @@ module BWCLI
|
|
41
41
|
conf.set_current_user options[:e], options[:u] if yes? "Would you like set this user as the current user?"
|
42
42
|
end
|
43
43
|
|
44
|
-
desc "
|
44
|
+
desc "set", "Set the current user"
|
45
45
|
method_option :u, :banner => 'Username', :required => true
|
46
46
|
method_option :e, :banner => 'Environment', :required => true
|
47
|
-
def
|
47
|
+
def set
|
48
48
|
conf.set_current_user options[:e], options[:u]
|
49
49
|
end
|
50
50
|
|
data/lib/bwcli/configuration.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'yaml'
|
2
|
+
require "openssl"
|
3
|
+
require "digest"
|
2
4
|
|
3
5
|
module BWCLI
|
4
6
|
|
@@ -10,7 +12,9 @@ module BWCLI
|
|
10
12
|
@config_file = File.join(File.expand_path("~"), ".bwcli")
|
11
13
|
@config = Hashie::Mash.new(YAML.load_file @config_file)
|
12
14
|
rescue Errno::ENOENT
|
13
|
-
|
15
|
+
File.new(@config_file, "w")
|
16
|
+
puts "\nAs you didn't have a .bwcli file, I created one for you!\n".green
|
17
|
+
retry
|
14
18
|
end
|
15
19
|
|
16
20
|
# Add user to the config hash
|
@@ -21,7 +25,7 @@ module BWCLI
|
|
21
25
|
def add_user env, username, pwd
|
22
26
|
config[env] = {} unless env_exists? env
|
23
27
|
abort "The #{username} already exists!".yellow if user_exists? env, username
|
24
|
-
config[env][username] = { 'access_token' => '', 'password' => pwd }
|
28
|
+
config[env][username] = { 'access_token' => '', 'password' => encrypt_password(username, pwd) }
|
25
29
|
write_config
|
26
30
|
end
|
27
31
|
|
@@ -47,7 +51,7 @@ module BWCLI
|
|
47
51
|
abort "There is no access token set for the current user".yellow if config.current_user.access_token.nil?
|
48
52
|
abort "There is no environment set for the current user".yellow if config.current_user.environment.nil?
|
49
53
|
|
50
|
-
return @bwapi ||= BWAPI::Client.new(:username => current_user.username, :password => current_user.password, :api_endpoint => api_endpoint)
|
54
|
+
return @bwapi ||= BWAPI::Client.new(:username => current_user.username, :password => decrypt_password(current_user.username, current_user.password), :api_endpoint => api_endpoint)
|
51
55
|
end
|
52
56
|
|
53
57
|
# Returns the config
|
@@ -85,10 +89,10 @@ module BWCLI
|
|
85
89
|
# List all users within the config hash
|
86
90
|
def list_users
|
87
91
|
abort "You have no users within your config file!".yellow if config.empty?
|
88
|
-
puts "\nUser Configuration"
|
92
|
+
puts "\nUser Configuration"
|
89
93
|
config.each do |k, v|
|
90
94
|
next if k == 'current_user'
|
91
|
-
puts "\nEnvironment: #{k}"
|
95
|
+
puts "\nEnvironment: #{k}"
|
92
96
|
print_hash_values v
|
93
97
|
end
|
94
98
|
|
@@ -98,9 +102,13 @@ module BWCLI
|
|
98
102
|
# List the current user within the config hash
|
99
103
|
def list_current_user
|
100
104
|
abort "You have no current user set!".yellow unless current_user_exists?
|
101
|
-
puts "\nCurrent User
|
105
|
+
puts "\nCurrent User"
|
102
106
|
config.current_user.each do |k,v|
|
103
|
-
|
107
|
+
if k == 'password'
|
108
|
+
puts "#{k.yellow}: ** HIDDEN **".yellow
|
109
|
+
else
|
110
|
+
puts "#{k.yellow}: #{v}".yellow unless v.nil?
|
111
|
+
end
|
104
112
|
end
|
105
113
|
end
|
106
114
|
|
@@ -117,19 +125,6 @@ module BWCLI
|
|
117
125
|
return bwapi
|
118
126
|
end
|
119
127
|
|
120
|
-
# Print out hash values
|
121
|
-
def print_hash_values hash
|
122
|
-
puts hash.yellow unless hash.is_a? Hash
|
123
|
-
hash.each do |k, v|
|
124
|
-
if v.is_a? Hash
|
125
|
-
puts "User: #{k}:".yellow
|
126
|
-
print_hash_values v
|
127
|
-
else
|
128
|
-
puts " - #{k}: #{v}"
|
129
|
-
end
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
128
|
# Resets the config to an empty hash
|
134
129
|
def reset
|
135
130
|
@config = {}
|
@@ -182,5 +177,40 @@ module BWCLI
|
|
182
177
|
File.open(@config_file, "w"){|f| YAML.dump(config, f)}
|
183
178
|
end
|
184
179
|
|
180
|
+
private
|
181
|
+
|
182
|
+
def encrypt_password key, pwd
|
183
|
+
key = Digest::SHA256.digest(key) if(key.kind_of?(String) && 32 != key.bytesize)
|
184
|
+
aes = OpenSSL::Cipher.new('AES-256-CBC')
|
185
|
+
aes.encrypt
|
186
|
+
aes.key = key
|
187
|
+
return aes.update(pwd) + aes.final
|
188
|
+
end
|
189
|
+
|
190
|
+
def decrypt_password key, pwd
|
191
|
+
key = Digest::SHA256.digest(key) if(key.kind_of?(String) && 32 != key.bytesize)
|
192
|
+
aes = OpenSSL::Cipher.new('AES-256-CBC')
|
193
|
+
aes.decrypt
|
194
|
+
aes.key = key
|
195
|
+
return aes.update(pwd) + aes.final
|
196
|
+
end
|
197
|
+
|
198
|
+
# Print out hash values
|
199
|
+
def print_hash_values hash
|
200
|
+
puts hash unless hash.is_a? Hash
|
201
|
+
hash.each do |k, v|
|
202
|
+
if v.is_a? Hash
|
203
|
+
puts "User:".yellow + " #{k}"
|
204
|
+
print_hash_values v
|
205
|
+
else
|
206
|
+
if k == 'password'
|
207
|
+
puts "#{k.yellow}: ** HIDDEN **"
|
208
|
+
else
|
209
|
+
puts "#{k.yellow}: #{v}\n" unless v.nil?
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
185
215
|
end
|
186
216
|
end
|
data/lib/bwcli/me.rb
CHANGED
@@ -9,11 +9,12 @@ module BWCLI
|
|
9
9
|
def configuration
|
10
10
|
@configuration ||= BWCLI::Configuration.new
|
11
11
|
end
|
12
|
+
alias :conf :configuration
|
12
13
|
end
|
13
14
|
|
14
15
|
desc "me", "Users credentials"
|
15
16
|
def me
|
16
|
-
ap
|
17
|
+
ap conf.oauth.me
|
17
18
|
end
|
18
19
|
default_task :me
|
19
20
|
|
data/lib/bwcli/projects.rb
CHANGED
@@ -9,15 +9,16 @@ module BWCLI
|
|
9
9
|
def configuration
|
10
10
|
@configuration ||= BWCLI::Configuration.new
|
11
11
|
end
|
12
|
+
alias :conf :configuration
|
12
13
|
end
|
13
14
|
|
14
15
|
desc "projects", "Users projects"
|
15
|
-
method_option :i, :banner => 'project id', :required => false
|
16
|
+
method_option :i, :banner => 'project id', :required => false, :type => :numeric
|
16
17
|
def projects
|
17
18
|
if options[:i].nil?
|
18
|
-
ap
|
19
|
+
ap conf.oauth.projects
|
19
20
|
else
|
20
|
-
|
21
|
+
ap conf.oauth.project options[:i]
|
21
22
|
end
|
22
23
|
end
|
23
24
|
default_task :projects
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bwcli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Chrisp
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- lib/bwcli/configuration.rb
|
114
114
|
- lib/bwcli/me.rb
|
115
115
|
- lib/bwcli/projects.rb
|
116
|
+
- lib/bwcli/version.rb
|
116
117
|
homepage: https://github.com/jonathanchrisp/bwcli
|
117
118
|
licenses:
|
118
119
|
- MIT
|