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 +4 -4
- data/README.md +0 -1
- data/lib/evertils/config.rb +10 -1
- data/lib/evertils/gpg_exception.rb +2 -0
- data/lib/evertils/required_check_exception.rb +2 -0
- data/lib/evertils/router.rb +32 -0
- data/lib/evertils/version.rb +1 -1
- data/lib/evertils/yubikey_exception.rb +2 -0
- data/lib/evertils.rb +4 -0
- metadata +4 -2
- data/lib/evertils/controllers/status.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63960e7260e09b841d48009ae22eb7a5fd61171e
|
4
|
+
data.tar.gz: 596c479a8841329ab8ddb7186f7c8a2a6f2f7d96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
|
data/lib/evertils/config.rb
CHANGED
@@ -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
|
data/lib/evertils/router.rb
CHANGED
@@ -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
|
data/lib/evertils/version.rb
CHANGED
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.
|
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/
|
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
|