shh 0.0.8 → 0.0.9
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.
- data/bin/shh +1 -1
- data/lib/shh.rb +25 -1
- data/lib/shh/darwin10_launcher.rb +5 -0
- data/lib/shh/entries_menu.rb +3 -5
- data/lib/shh/entry_menu.rb +52 -14
- data/lib/shh/prompt.rb +1 -1
- data/lib/shh/win32_launcher.rb +5 -0
- metadata +3 -2
- data/lib/shh/clipboard.rb +0 -13
data/bin/shh
CHANGED
data/lib/shh.rb
CHANGED
@@ -1 +1,25 @@
|
|
1
|
-
|
1
|
+
module Shh
|
2
|
+
def self.clipboard
|
3
|
+
if RUBY_PLATFORM =~ /mswin32/
|
4
|
+
require 'shh/win32_clipboard'
|
5
|
+
return Win32Clipboard.new
|
6
|
+
end
|
7
|
+
if RUBY_PLATFORM =~ /darwin10/
|
8
|
+
require 'shh/darwin10_clipboard'
|
9
|
+
return Darwin10Clipboard.new
|
10
|
+
end
|
11
|
+
nil
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.launcher
|
15
|
+
if RUBY_PLATFORM =~ /mswin32/
|
16
|
+
require 'shh/win32_launcher'
|
17
|
+
return Win32Launcher.new
|
18
|
+
end
|
19
|
+
if RUBY_PLATFORM =~ /darwin10/
|
20
|
+
require 'shh/darwin10_launcher'
|
21
|
+
return Darwin10Launcher.new
|
22
|
+
end
|
23
|
+
nil
|
24
|
+
end
|
25
|
+
end
|
data/lib/shh/entries_menu.rb
CHANGED
@@ -21,7 +21,7 @@ module Shh
|
|
21
21
|
when 'refresh'
|
22
22
|
refresh
|
23
23
|
when 'list'
|
24
|
-
|
24
|
+
@entries.each {|entry| say entry }
|
25
25
|
when /^view (.*)/
|
26
26
|
view $1
|
27
27
|
when /^edit (.*)/
|
@@ -37,7 +37,9 @@ module Shh
|
|
37
37
|
|
38
38
|
def refresh
|
39
39
|
commands = ['list', 'refresh', 'quit']
|
40
|
+
@entries = []
|
40
41
|
@repository.each_entry do |entry|
|
42
|
+
@entries << "#{entry['name']} (#{entry['id']})"
|
41
43
|
commands << "edit #{entry['name']}"
|
42
44
|
commands << "view #{entry['name']}"
|
43
45
|
end
|
@@ -47,10 +49,6 @@ module Shh
|
|
47
49
|
Readline.completer_word_break_characters = ''
|
48
50
|
end
|
49
51
|
|
50
|
-
def list
|
51
|
-
@repository.each_entry {|entry| say "#{entry['name']} (#{entry['id']})" }
|
52
|
-
end
|
53
|
-
|
54
52
|
def edit name
|
55
53
|
entry = @repository.find_entry(name)
|
56
54
|
entry ||= {'name' => name, 'id' => UUIDTools::UUID.random_create.to_s}
|
data/lib/shh/entry_menu.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
require 'shh
|
1
|
+
require 'shh'
|
2
2
|
|
3
3
|
module Shh
|
4
4
|
class EntryMenu
|
5
5
|
def initialize prompt, hash, read_only=false
|
6
6
|
@prompt, @hash, @read_only = prompt, hash, read_only
|
7
7
|
@clipboard = Shh.clipboard
|
8
|
+
@launcher = Shh.launcher
|
8
9
|
refresh
|
9
10
|
end
|
10
11
|
|
@@ -20,17 +21,15 @@ module Shh
|
|
20
21
|
when 'list'
|
21
22
|
say(@hash.keys.sort.join(','))
|
22
23
|
when /^edit (.*)/
|
23
|
-
|
24
|
-
@hash[name] = new_value(name) unless @read_only
|
24
|
+
edit $1
|
25
25
|
when /^copy (.*)/
|
26
|
-
|
27
|
-
|
26
|
+
copy $1
|
27
|
+
when /^launch (.*)/
|
28
|
+
launch $1
|
28
29
|
when /^delete (.*)/
|
29
|
-
|
30
|
-
@hash.delete(name) unless @read_only
|
30
|
+
delete $1
|
31
31
|
when /^show (.*)/
|
32
|
-
|
33
|
-
say(@hash[name]) if @hash[name]
|
32
|
+
show $1
|
34
33
|
end
|
35
34
|
end
|
36
35
|
rescue Interrupt => e
|
@@ -43,13 +42,52 @@ module Shh
|
|
43
42
|
|
44
43
|
private
|
45
44
|
|
45
|
+
def can_copy? key
|
46
|
+
@clipboard and @hash[key]
|
47
|
+
end
|
48
|
+
|
49
|
+
def can_edit?
|
50
|
+
!@read_only
|
51
|
+
end
|
52
|
+
|
53
|
+
def can_launch? key
|
54
|
+
@launcher and @hash[key] =~ /^http\:\/\//
|
55
|
+
end
|
56
|
+
|
57
|
+
def show key
|
58
|
+
say(@hash[key]) if @hash[key]
|
59
|
+
end
|
60
|
+
|
61
|
+
def copy key
|
62
|
+
@clipboard.content = @hash[key] if can_copy?(key)
|
63
|
+
end
|
64
|
+
|
65
|
+
def edit key
|
66
|
+
if can_edit?
|
67
|
+
@hash[key] = new_value(key)
|
68
|
+
refresh
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def delete key
|
73
|
+
if can_edit?
|
74
|
+
@hash.delete(key)
|
75
|
+
refresh
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def launch key
|
80
|
+
@launcher.launch @hash[key] if can_launch?(key)
|
81
|
+
end
|
82
|
+
|
46
83
|
def refresh
|
47
84
|
commands = ['list', 'quit']
|
48
85
|
@hash.keys.each do |key|
|
49
|
-
commands << "edit #{key}"
|
50
|
-
commands << "delete #{key}"
|
86
|
+
commands << "edit #{key}" if can_edit?
|
87
|
+
commands << "delete #{key}" if can_edit?
|
51
88
|
commands << "show #{key}"
|
52
|
-
commands << "copy #{key}"
|
89
|
+
commands << "copy #{key}" if can_copy?(key)
|
90
|
+
commands << "launch #{key}" if can_launch?(key)
|
53
91
|
end
|
54
92
|
Readline.completion_proc = lambda do |text|
|
55
93
|
commands.grep( /^#{Regexp.escape(text)}/ ).sort
|
@@ -57,8 +95,8 @@ private
|
|
57
95
|
Readline.completer_word_break_characters = ''
|
58
96
|
end
|
59
97
|
|
60
|
-
def new_value
|
61
|
-
@prompt.get "Enter new value for #{
|
98
|
+
def new_value key
|
99
|
+
@prompt.get "Enter new value for #{key}", :silent => (key =~ /pass/)
|
62
100
|
end
|
63
101
|
end
|
64
102
|
end
|
data/lib/shh/prompt.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Ryall
|
@@ -64,14 +64,15 @@ extra_rdoc_files: []
|
|
64
64
|
|
65
65
|
files:
|
66
66
|
- lib/shh/cli.rb
|
67
|
-
- lib/shh/clipboard.rb
|
68
67
|
- lib/shh/crypt.rb
|
69
68
|
- lib/shh/darwin10_clipboard.rb
|
69
|
+
- lib/shh/darwin10_launcher.rb
|
70
70
|
- lib/shh/entries_menu.rb
|
71
71
|
- lib/shh/entry_menu.rb
|
72
72
|
- lib/shh/prompt.rb
|
73
73
|
- lib/shh/repository.rb
|
74
74
|
- lib/shh/win32_clipboard.rb
|
75
|
+
- lib/shh/win32_launcher.rb
|
75
76
|
- lib/shh.rb
|
76
77
|
- bin/shh
|
77
78
|
- README.rdoc
|
data/lib/shh/clipboard.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
module Shh
|
2
|
-
def self.clipboard
|
3
|
-
if RUBY_PLATFORM =~ /mswin32/
|
4
|
-
require 'shh/win32_clipboard'
|
5
|
-
return Win32Clipboard.new
|
6
|
-
end
|
7
|
-
if RUBY_PLATFORM =~ /darwin10/
|
8
|
-
require 'shh/darwin10_clipboard'
|
9
|
-
return Darwin10Clipboard.new
|
10
|
-
end
|
11
|
-
nil
|
12
|
-
end
|
13
|
-
end
|