pass-station 1.2.3 → 1.3.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
  SHA256:
3
- metadata.gz: ae09b43b764e460c230fd29723ef4293c7624808a7d4cd7511789b3a0a087a0c
4
- data.tar.gz: 02b004b539741d6d678579b480cfedf314c7ede04886bf956c111ba1ab69a21c
3
+ metadata.gz: e5b31b81d976f3ffc9c63384b5bdcf829af5fca16bf28a955f5610c9b827125b
4
+ data.tar.gz: a498b1e9f6708cc4525135edadca428b5021c0832b38e6f8ae66ca873efb3157
5
5
  SHA512:
6
- metadata.gz: ef336e447a6dbf9267f1aa3f249e6928b533b414833f925ca834fee7407369284e9ef94ad6c32347241af0e6dac31cae6ed6724a4dcdb3b83577574f99266a9b
7
- data.tar.gz: a4d82db3a4db21bdbb29661a1ae4bbf44ad9586dd744548875d17ad528ff3ba4d4e7eb38cf1c9f294ae05af27ef1252c84f34d76d59c503619490642a35db704
6
+ metadata.gz: 46e3622f6afecdcf0125438a13ef399a11847aa08a3b45e1b4f1d98353926336b0bac82f5b76cd67a3f79265de927a569808f903e8ed68d19c4c9f202ab68d86
7
+ data.tar.gz: 6551999d9d796f61c9941fe8a120d53b0fcf4e6a59e5bb838c205f1fdc703871bcfaf53ccd9854072c408a7158322a2fed67fb8886d61d82d87d8028c9b970c8
@@ -12,7 +12,7 @@ module PassStation
12
12
  # Password database handling
13
13
  class DB
14
14
  # Output the data in the chosen format
15
- # @param formatter [String] Engine to use to format the data: +table+, +'pretty-table'+, +JSON+, +CSV+, +YAML+
15
+ # @param formatter [String] Engine to use to format the data: `table`, `'pretty-table'`, `JSON`, `CSV`, `YAML`
16
16
  # @param data [Array<CSV::Row>]
17
17
  # @return [Array<String>] formatted output
18
18
  def output(formatter, data)
@@ -21,7 +21,7 @@ module PassStation
21
21
  end
22
22
 
23
23
  # Output the data in the chosen format (list command)
24
- # @param formatter [String] Engine to use to format the data: +table+, +'pretty-table'+, +JSON+, +CSV+, +YAML+
24
+ # @param formatter [String] Engine to use to format the data: `table`, `'pretty-table'`, `JSON`, `CSV`, `YAML`
25
25
  # @return [Array<String>] formatted output
26
26
  def output_list(formatter)
27
27
  data_nil?
@@ -29,7 +29,7 @@ module PassStation
29
29
  end
30
30
 
31
31
  # Output the data in the chosen format (search command)
32
- # @param formatter [String] Engine to use to format the data: +table+, +'pretty-table'+, +JSON+, +CSV+, +YAML+
32
+ # @param formatter [String] Engine to use to format the data: `table`, `'pretty-table'`, `JSON`, `CSV`, `YAML`
33
33
  # @return [Array<String>] formatted output
34
34
  def output_search(formatter)
35
35
  return [] if @search_result.empty?
@@ -68,8 +68,8 @@ module PassStation
68
68
  # Simple table formatter
69
69
  class Table
70
70
  class << self
71
- # Format the +Array<CSV::Row>+ into a simple table with justified columns
72
- # @param table [Array<CSV::Row>] an +Array<CSV::Row>+
71
+ # Format the `Array<CSV::Row>` into a simple table with justified columns
72
+ # @param table [Array<CSV::Row>] an `Array<CSV::Row>`
73
73
  # @return [Array<String>] the formatted table ready to be printed
74
74
  def format(table)
75
75
  out = []
@@ -112,7 +112,7 @@ module PassStation
112
112
  end
113
113
 
114
114
  # Left justify an element of the column
115
- # @param row [CSV::Row] +CSV::Row+
115
+ # @param row [CSV::Row] `CSV::Row`
116
116
  # @param column [Symbol] the symbol of the column
117
117
  # @param colsizes [Hash] hash containing the column size for each column as returned by {colsizes_count}
118
118
  # @return [String] the justified element
@@ -121,7 +121,7 @@ module PassStation
121
121
  end
122
122
 
123
123
  # Left justify all elements of the column
124
- # @param row [CSV::Row] +CSV::Row+
124
+ # @param row [CSV::Row] `CSV::Row`
125
125
  # @param colsizes [Hash] hash containing the column size for each column as returned by {colsizes_count}
126
126
  # @return [String] the justified row
127
127
  def justify_row(row, colsizes)
@@ -146,8 +146,8 @@ module PassStation
146
146
  # Pretty table with ASCII borders formatter
147
147
  class PrettyTable < Table
148
148
  class << self
149
- # Format the +Array<CSV::Row>+ into a simple table with justified columns
150
- # @param table [Array<CSV::Row>] an +Array<CSV::Row>+
149
+ # Format the `Array<CSV::Row>` into a simple table with justified columns
150
+ # @param table [Array<CSV::Row>] an `Array<CSV::Row>`
151
151
  # @return [Array<String>] the formatted table ready to be printed
152
152
  def format(table)
153
153
  out = []
@@ -162,7 +162,7 @@ module PassStation
162
162
  end
163
163
 
164
164
  # Left justify an element of the column
165
- # @param row [CSV::Row] +CSV::Row+
165
+ # @param row [CSV::Row] `CSV::Row`
166
166
  # @param column [Symbol] the symbol of the column
167
167
  # @param colsizes [Hash] hash containing the column size for each column as returned by {colsizes_count}
168
168
  # @return [String] the justified element
@@ -171,7 +171,7 @@ module PassStation
171
171
  end
172
172
 
173
173
  # Left justify all elements of the column
174
- # @param row [CSV::Row] +CSV::Row+
174
+ # @param row [CSV::Row] `CSV::Row`
175
175
  # @param colsizes [Hash] hash containing the column size for each column as returned by {colsizes_count}
176
176
  # @return [String] the justified row
177
177
  def justify_row(row, colsizes)
@@ -203,8 +203,8 @@ module PassStation
203
203
  # CSV formatter
204
204
  class Csv
205
205
  class << self
206
- # Format the +Array<CSV::Row>+ into a CSV
207
- # @param table [Array<CSV::Row>] an +Array<CSV::Row>+
206
+ # Format the `Array<CSV::Row>` into a CSV
207
+ # @param table [Array<CSV::Row>] an `Array<CSV::Row>`
208
208
  # @return [Array<String>] the formatted CSV ready to be printed
209
209
  def format(table)
210
210
  CSV::Table.new(table).to_csv.split("\n")
@@ -215,8 +215,8 @@ module PassStation
215
215
  # JSON formatter
216
216
  class Json
217
217
  class << self
218
- # Format the +Array<CSV::Row>+ into JSON
219
- # @param table [Array<CSV::Row>] an +Array<CSV::Row>+
218
+ # Format the `Array<CSV::Row>` into JSON
219
+ # @param table [Array<CSV::Row>] an `Array<CSV::Row>`
220
220
  # @return [Array<String>] the formatted JSON ready to be printed (only
221
221
  # one element on the array, keep an array for compatibility with
222
222
  # {DB.highlight_found} and homogeneity with other formatters)
@@ -229,8 +229,8 @@ module PassStation
229
229
  # YAML formatter
230
230
  class Yaml
231
231
  class << self
232
- # Format the +Array<CSV::Row>+ into YAML
233
- # @param table [Array<CSV::Row>] an +Array<CSV::Row>+
232
+ # Format the `Array<CSV::Row>` into YAML
233
+ # @param table [Array<CSV::Row>] an `Array<CSV::Row>`
234
234
  # @return [Array<String>] the formatted YAML ready to be printed (only
235
235
  # one element on the array, keep an array for compatibility with
236
236
  # {DB.highlight_found} and homogeneity with other formatters)
@@ -23,7 +23,7 @@ module PassStation
23
23
 
24
24
  # Parse, sort and sanitize the password database
25
25
  # @param sort [Symbol] column name to sort by (columns depends on the database source, see {UPSTREAM_DATABASE})
26
- # @return [Array<CSV::Row>] table of +CSV::Row+, each row contains multiple
26
+ # @return [Array<CSV::Row>] table of `CSV::Row`, each row contains multiple
27
27
  # attributes (columns depends on the database source, see {UPSTREAM_DATABASE})
28
28
  def parse(sort = nil)
29
29
  sort ||= UPSTREAM_DATABASE[@database_type][:COLUMNS].first[0]
@@ -8,8 +8,8 @@ module PassStation
8
8
  # @param term [String] the searched term
9
9
  # @param col [Symbol] the column to search in: column name (columns depends on the database source, see
10
10
  # {UPSTREAM_DATABASE}) or :all (all columns)
11
- # @see build_regexp for +opts+ param description
12
- # @return [Array<CSV::Row>] table of +CSV::Row+, each row contains multiple
11
+ # @see build_regexp for `opts` param description
12
+ # @return [Array<CSV::Row>] table of `CSV::Row`, each row contains multiple
13
13
  # attributes (columns depends on the database source, see {UPSTREAM_DATABASE})
14
14
  def search(term, col, opts = {})
15
15
  col ||= UPSTREAM_DATABASE[@database_type][:COLUMNS].first[0]
@@ -58,7 +58,7 @@ module PassStation
58
58
  end
59
59
 
60
60
  # Check if an update is available
61
- # @return [Boolean] +true+ if there is, +false+ else.
61
+ # @return [Boolean] `true` if there is, `false` else.
62
62
  def check_for_update
63
63
  ret_vals = []
64
64
  UPSTREAM_DATABASE[:MAPPING].each do |_k, v|
@@ -93,8 +93,8 @@ module PassStation
93
93
  # Check if a file match a SHA256 hash
94
94
  # @param file [String] the path of the file.
95
95
  # @param hash [String] tha SHA256 hash to check against.
96
- # @return [Boolean] if the hash of the file matched the one provided (+true+)
97
- # or not (+false+).
96
+ # @return [Boolean] if the hash of the file matched the one provided (`true`)
97
+ # or not (`false`).
98
98
  def check_hash(file, hash)
99
99
  if !hash.nil? && File.file?(file)
100
100
  computed_h = Digest::SHA256.file(file)
@@ -120,9 +120,7 @@ module PassStation
120
120
  # @param file_content [String] the content to write in the file
121
121
  # @return [String] destination file path
122
122
  def write_file(destination_file, file_content)
123
- File.open(destination_file, 'wb') do |file|
124
- file.write(file_content)
125
- end
123
+ File.binwrite(destination_file, file_content)
126
124
  destination_file
127
125
  end
128
126
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Version
4
- VERSION = '1.2.3'
4
+ VERSION = '1.3.0'
5
5
  end
data/lib/pass_station.rb CHANGED
@@ -16,15 +16,15 @@ module PassStation
16
16
  # Password database handling
17
17
  class DB
18
18
  # Get / set storage location, where will be stored the password database.
19
- # @return [String] database storage location. Default to +data/+.
19
+ # @return [String] database storage location. Default to `data/`.
20
20
  attr_accessor :storage_location
21
21
 
22
22
  # Get / set the password database name
23
23
  # @return [String] password database filename. Default to
24
- # +DefaultCreds-Cheat-Sheet.csv+.
24
+ # `DefaultCreds-Cheat-Sheet.csv`.
25
25
  attr_accessor :database_name
26
26
 
27
- # Get the password database in +Array<CSV::Row>+ format
27
+ # Get the password database in `Array<CSV::Row>` format
28
28
  # @return [Array<CSV::Row>] password database
29
29
  attr_reader :data
30
30
 
@@ -52,7 +52,7 @@ module PassStation
52
52
  end
53
53
 
54
54
  # Check if the password database exists
55
- # @return [Boolean] +true+ if the file exists
55
+ # @return [Boolean] `true` if the file exists
56
56
  def database_exists?
57
57
  exists = File.file?(@database_path)
58
58
  raise "Database does not exist: #{@database_path}" unless exists
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pass-station
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre ZANNI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-11 00:00:00.000000000 Z
11
+ date: 2022-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docopt
@@ -38,138 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.2'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 2.1.0
48
- - - "<"
49
- - !ruby/object:Gem::Version
50
- version: '2.3'
51
- type: :development
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: 2.1.0
58
- - - "<"
59
- - !ruby/object:Gem::Version
60
- version: '2.3'
61
- - !ruby/object:Gem::Dependency
62
- name: commonmarker
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '0.21'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '0.21'
75
- - !ruby/object:Gem::Dependency
76
- name: github-markup
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '4.0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '4.0'
89
- - !ruby/object:Gem::Dependency
90
- name: minitest
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '5.12'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '5.12'
103
- - !ruby/object:Gem::Dependency
104
- name: rake
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '13.0'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '13.0'
117
- - !ruby/object:Gem::Dependency
118
- name: redcarpet
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '3.5'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: '3.5'
131
- - !ruby/object:Gem::Dependency
132
- name: rubocop
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: '1.10'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: '1.10'
145
- - !ruby/object:Gem::Dependency
146
- name: webrick
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '1.7'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: '1.7'
159
- - !ruby/object:Gem::Dependency
160
- name: yard
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: '0.9'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - "~>"
171
- - !ruby/object:Gem::Version
172
- version: '0.9'
173
41
  description: CLI & library to search for default credentials among thousands of Products
174
42
  / Vendors
175
43
  email: alexandre.zanni@engineer.com
@@ -200,6 +68,7 @@ metadata:
200
68
  documentation_uri: https://noraj.github.io/pass-station/yard/
201
69
  homepage_uri: https://noraj.github.io/pass-station/
202
70
  source_code_uri: https://github.com/noraj/pass-station/
71
+ rubygems_mfa_required: 'true'
203
72
  post_install_message:
204
73
  rdoc_options: []
205
74
  require_paths:
@@ -211,14 +80,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
211
80
  version: 2.6.0
212
81
  - - "<"
213
82
  - !ruby/object:Gem::Version
214
- version: '3.1'
83
+ version: '3.2'
215
84
  required_rubygems_version: !ruby/object:Gem::Requirement
216
85
  requirements:
217
86
  - - ">="
218
87
  - !ruby/object:Gem::Version
219
88
  version: '0'
220
89
  requirements: []
221
- rubygems_version: 3.2.22
90
+ rubygems_version: 3.3.3
222
91
  signing_key:
223
92
  specification_version: 4
224
93
  summary: CLI & library to search for default credentials among thousands of Products