evertils 0.3.27 → 0.4.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: 720ca09dc9d7d89afa4d74339198a311f227d76b
4
- data.tar.gz: 9cd601199146d6c4eca7e5ae88f55824d2dfb468
3
+ metadata.gz: 63960e7260e09b841d48009ae22eb7a5fd61171e
4
+ data.tar.gz: 596c479a8841329ab8ddb7186f7c8a2a6f2f7d96
5
5
  SHA512:
6
- metadata.gz: 9159ebab49b3e62737224e13c9bf16a43271551f7242f9b38b643d5698b8b858becf2ca3db4a15c34e01c6c4f6ec1b77b26f7f5fa741307dd104cae76cf02247
7
- data.tar.gz: 3ef0e54ced274549b7d29a5ec03e3c9acbaf55f04fa3caedcbfbfc1f3996e3043450ee9247642a8bd2756e2c946445927b00d1d5fadda028a4cc9ffee7bea508
6
+ metadata.gz: 0bd824fcdadc08541ecaf17fad468b6c9bff456564da6464f6a2c695149c74835f2be78ea8ee454623248d0368b957a345742a82a3df90d4bcbb7fb4d296154b
7
+ data.tar.gz: 83d02e678a531b7cac51102f9330283632830fc7e0a3b4d1b5b5e29f078ee0e5b0ce304d32037ad255c1df686362f461dd57004d8d62c20dcc9996a5f237dcd4
data/README.md CHANGED
@@ -20,7 +20,6 @@ See [this document](https://github.com/aapis/evertils/wiki/Logging-Specification
20
20
  |new|Manually create notes|`evertils new note "STUFF"`, `evertils new share_note "STUFF"`, `other task $PIPE_CHAR$ evertils new share_note --title="Piped data note"`|
21
21
  |get|Get data from Evernote|`evertils get notebook` (coming soon)|
22
22
  |convert|Convert your notes to Markdown, then back to ENML|(coming soon)|
23
- |status|View script information and other data|`evertils status`|
24
23
 
25
24
  ## Automation
26
25
 
@@ -42,10 +42,19 @@ module Evertils
42
42
  # Get a specific value from the config file data
43
43
  # Params:
44
44
  # +name+:: String/symbol key value
45
- def get(name)
45
+ def get(name, child = nil)
46
+ return @yml[name.to_sym][child.to_sym] unless child.nil?
46
47
  @yml[name.to_sym]
47
48
  end
48
49
 
50
+ # Checks if a key exists
51
+ # Params:
52
+ # +name+:: String/symbol key value
53
+ def exist?(name, child = nil)
54
+ return @yml[name].key?(child.to_sym) unless child.nil?
55
+ @yml.key?(name.to_sym)
56
+ end
57
+
49
58
  private
50
59
 
51
60
  # Check if configuration data exists
@@ -0,0 +1,2 @@
1
+ class GpgException < StandardError
2
+ end
@@ -0,0 +1,2 @@
1
+ class RequiredCheckException < StandardError
2
+ end
@@ -16,6 +16,20 @@ module Evertils
16
16
  require "evertils/controllers/#{@request.controller}"
17
17
  # include helpers
18
18
  require "evertils/helpers/#{@request.controller}" if File.exist? "evertils/helpers/#{@request.controller}"
19
+
20
+ # perform all required checks
21
+ must_pass = Helper::Results.new
22
+ @config.get(:required).each do |key, value|
23
+ must_pass.add(send("verify_#{key}"))
24
+ end
25
+
26
+ raise RequiredCheckException unless must_pass.should_eval_to(true)
27
+ rescue YubikeyException
28
+ Notify.error('Check failed: Yubikey is not inserted')
29
+ rescue GpgException
30
+ Notify.error('Check failed: GPG key not found or not imported into your keychain')
31
+ rescue RequiredCheckException
32
+ Notify.error('One or more required checks failed')
19
33
  rescue LoadError
20
34
  Notify.error("Controller not found: #{@request.controller}")
21
35
  end
@@ -52,5 +66,23 @@ module Evertils
52
66
  Notify.error("#{e}\n#{e.backtrace.join("\n")}", show_time: false)
53
67
  end
54
68
  end
69
+
70
+ # checks output of gpg --list-keys for the presence of a specific GPG key
71
+ def verify_gpgKey
72
+ # TODO: replace with Open3
73
+ res = system("gpg --list-keys #{@config.get(:required, :gpgKey)} 2>/dev/null >/dev/null")
74
+
75
+ raise GpgException unless res
76
+ res
77
+ end
78
+
79
+ # checks output of ykman list to determine if the correct key is inserted
80
+ def verify_yubikeySerial
81
+ # TODO: replace with Open3
82
+ res = system("ykman list | grep #{@config.get(:required, :yubikeySerial)} 2>/dev/null >/dev/null")
83
+
84
+ raise YubikeyException unless res
85
+ res
86
+ end
55
87
  end
56
88
  end
@@ -1,3 +1,3 @@
1
1
  module Evertils
2
- VERSION = '0.3.27'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  end
@@ -0,0 +1,2 @@
1
+ class YubikeyException < StandardError
2
+ end
data/lib/evertils.rb CHANGED
@@ -14,6 +14,7 @@ require 'mime/types'
14
14
  require 'evertils/common'
15
15
  require 'yaml'
16
16
  require 'nokogiri'
17
+ # require 'open3'
17
18
 
18
19
  # include required files
19
20
  require 'evertils/kernel'
@@ -23,6 +24,9 @@ require 'evertils/type'
23
24
  require 'evertils/helpers/time'
24
25
  require 'evertils/helpers/results'
25
26
  require 'evertils/helpers/api-enml-handler'
27
+ require 'evertils/gpg_exception'
28
+ require 'evertils/yubikey_exception'
29
+ require 'evertils/required_check_exception'
26
30
  require 'evertils/config'
27
31
  require 'evertils/request'
28
32
  require 'evertils/controller'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evertils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.27
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Priebe
@@ -124,7 +124,7 @@ files:
124
124
  - lib/evertils/controllers/get.rb
125
125
  - lib/evertils/controllers/log.rb
126
126
  - lib/evertils/controllers/new.rb
127
- - lib/evertils/controllers/status.rb
127
+ - lib/evertils/gpg_exception.rb
128
128
  - lib/evertils/helper.rb
129
129
  - lib/evertils/helpers/api-enml-handler.rb
130
130
  - lib/evertils/helpers/evernote-enml.rb
@@ -136,6 +136,7 @@ files:
136
136
  - lib/evertils/helpers/xml.rb
137
137
  - lib/evertils/kernel.rb
138
138
  - lib/evertils/request.rb
139
+ - lib/evertils/required_check_exception.rb
139
140
  - lib/evertils/router.rb
140
141
  - lib/evertils/type.rb
141
142
  - lib/evertils/types/daily.rb
@@ -145,6 +146,7 @@ files:
145
146
  - lib/evertils/types/weekly.rb
146
147
  - lib/evertils/vendor/enml.dtd
147
148
  - lib/evertils/version.rb
149
+ - lib/evertils/yubikey_exception.rb
148
150
  homepage: http://rubygems.org/gems/evertils
149
151
  licenses:
150
152
  - MIT
@@ -1,13 +0,0 @@
1
- module Evertils
2
- module Controller
3
- class Status < Controller::Base
4
-
5
- def default
6
- @config.options.each_pair do |key, value|
7
- Notify.spit "#{key}: #{value}"
8
- end
9
- end
10
-
11
- end
12
- end
13
- end