ding 0.8.0 → 0.8.2
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/lib/ding/cli.rb +9 -8
- data/lib/ding/helpers.rb +10 -0
- data/lib/ding/models/git.rb +3 -11
- data/lib/ding/models/ssh.rb +5 -12
- data/lib/ding/version.rb +1 -1
- data/lib/ding.rb +4 -3
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1be9dc233de1e9fa9ef54dc9598581bf831bc05
|
4
|
+
data.tar.gz: 6ca2841edd020de0c0a6da25e027370497ae7423
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 214c096bdc4cff13250bc1f0af923f331a5f29aa89ec59213f90355798c58e167faabd1e5d317ade850f8177a31e3a1c446860970ece0e26d3f9c6758aed1cda
|
7
|
+
data.tar.gz: 3274c3a8d55abdaaba7f1392dd9afcafc0977c53ccca7ecc9f21bd197516e0487b700d2f2f9b7c29f0cc3f10c13428516b49576ad46398c838c2333e89128a59
|
data/lib/ding/cli.rb
CHANGED
@@ -116,7 +116,7 @@ module Ding
|
|
116
116
|
say "\nDing ding ding: let's copy a public key to the clipboard:\n\n", :green
|
117
117
|
|
118
118
|
Ding::Ssh.new(options).tap do |s|
|
119
|
-
key_name = ask_which_item(s.list_ssh_keys, "
|
119
|
+
key_name = ask_which_item(s.list_ssh_keys, "Which key do you want to copy?")
|
120
120
|
say "\n> Copying the public key to the clipboard", :green
|
121
121
|
copy_file_to_clipboard s.ssh_public_key_file(key_name)
|
122
122
|
end
|
@@ -141,7 +141,9 @@ module Ding
|
|
141
141
|
def ask_which_item(items, prompt, mode=:single)
|
142
142
|
return Array(items.first) if items.size == 1
|
143
143
|
str_format = "\n %#{items.count.to_s.size}s: %s"
|
144
|
-
prompt
|
144
|
+
prompt << "\n > Enter a single selection, "
|
145
|
+
prompt << "multiple selections separated by ',', 'A' for all, " if mode == :multiple
|
146
|
+
prompt << "'Q' or nothing to quit"
|
145
147
|
question = set_color prompt, :yellow
|
146
148
|
answers = {}
|
147
149
|
|
@@ -159,6 +161,9 @@ module Ding
|
|
159
161
|
exit 0
|
160
162
|
elsif answers[reply]
|
161
163
|
answers.values_at(reply)
|
164
|
+
elsif mode == :single
|
165
|
+
say "\n --> That's not a valid selection, I'm out of here!\n\n", :red
|
166
|
+
exit 1
|
162
167
|
elsif mode == :multiple && reply.upcase == 'A'
|
163
168
|
answers.values
|
164
169
|
elsif mode == :multiple && !replies.empty?
|
@@ -172,12 +177,8 @@ module Ding
|
|
172
177
|
end
|
173
178
|
|
174
179
|
def copy_file_to_clipboard(file)
|
175
|
-
cmd = "cat #{file}
|
176
|
-
|
177
|
-
cmd << 'tee >(pbcopy)'
|
178
|
-
else
|
179
|
-
cmd << 'pbcopy'
|
180
|
-
end
|
180
|
+
cmd = "cat #{file}"
|
181
|
+
cmd << (options[:verbose] ? '|tee >(pbcopy)' : '|pbcopy')
|
181
182
|
bash cmd
|
182
183
|
end
|
183
184
|
|
data/lib/ding/helpers.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
module Ding
|
2
|
+
module Helpers
|
3
|
+
# NOTE: only for commands where we are interested in the effect
|
4
|
+
# as unless verbose is turned on, stdout and stderr are suppressed
|
5
|
+
def run_cmd(cmd)
|
6
|
+
cmd << ' &>/dev/null ' unless options[:verbose]
|
7
|
+
system cmd
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
data/lib/ding/models/git.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
module Ding
|
2
2
|
class Git
|
3
|
+
include Ding::Helpers
|
4
|
+
|
5
|
+
attr_reader :options
|
3
6
|
|
4
7
|
def initialize(options={})
|
5
8
|
raise "#{repo} is NOT a git repository" unless git_repo?
|
@@ -99,16 +102,5 @@ module Ding
|
|
99
102
|
def remote_prefix
|
100
103
|
"#{remote_name}/"
|
101
104
|
end
|
102
|
-
|
103
|
-
# NOTE: only for commands where we are interested in the effect
|
104
|
-
# as unless verbose is turned on, stdout and stderr are suppressed
|
105
|
-
def run_cmd(cmd)
|
106
|
-
cmd << ' &>/dev/null ' unless options[:verbose]
|
107
|
-
system cmd
|
108
|
-
end
|
109
|
-
|
110
|
-
def options
|
111
|
-
@options || {}
|
112
|
-
end
|
113
105
|
end
|
114
106
|
end
|
data/lib/ding/models/ssh.rb
CHANGED
@@ -2,6 +2,9 @@ require 'fileutils'
|
|
2
2
|
|
3
3
|
module Ding
|
4
4
|
class Ssh
|
5
|
+
include Ding::Helpers
|
6
|
+
|
7
|
+
attr_reader :options
|
5
8
|
|
6
9
|
def initialize(options={})
|
7
10
|
@options = options
|
@@ -17,7 +20,8 @@ module Ding
|
|
17
20
|
end
|
18
21
|
|
19
22
|
def delete_ssh_key(name)
|
20
|
-
|
23
|
+
raise "ssh key #{name} does not exist!" if ssh_key_exists? name
|
24
|
+
File.delete ssh_public_key_file(name), ssh_private_key_file(name)
|
21
25
|
end
|
22
26
|
|
23
27
|
def update_config(host, name)
|
@@ -61,16 +65,5 @@ module Ding
|
|
61
65
|
def ssh_config_file
|
62
66
|
@ssh_config_file || options[:ssh_config_file] || File.join(ssh_config_path, 'config')
|
63
67
|
end
|
64
|
-
|
65
|
-
# NOTE: only for commands where we are interested in the effect
|
66
|
-
# as unless verbose is turned on, stdout and stderr are suppressed
|
67
|
-
def run_cmd(cmd)
|
68
|
-
cmd << ' &>/dev/null ' unless options[:verbose]
|
69
|
-
system cmd
|
70
|
-
end
|
71
|
-
|
72
|
-
def options
|
73
|
-
@options || {}
|
74
|
-
end
|
75
68
|
end
|
76
69
|
end
|
data/lib/ding/version.rb
CHANGED
data/lib/ding.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'ding/version'
|
2
2
|
require 'ding/cli'
|
3
|
+
require 'ding/helpers'
|
3
4
|
require 'ding/models/git'
|
4
5
|
require 'ding/models/ssh'
|
5
6
|
|
6
7
|
module Ding
|
7
|
-
MASTER_BRANCH
|
8
|
-
DEVELOP_BRANCH
|
9
|
-
TESTING_BRANCH
|
8
|
+
MASTER_BRANCH = ENV['DING_MASTER_BRANCH'] || 'master'
|
9
|
+
DEVELOP_BRANCH = ENV['DING_DEVELOP_BRANCH'] || 'develop'
|
10
|
+
TESTING_BRANCH = ENV['DING_TESTING_BRANCH'] || 'testing'
|
10
11
|
SACROSANCT_BRANCHES = (ENV['DING_SACROSANCT_BRANCHES'] || "#{MASTER_BRANCH} #{DEVELOP_BRANCH}").split
|
11
12
|
|
12
13
|
# because we lurve the command line... ding!
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ding
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Warren Bain
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- ding.png
|
86
86
|
- lib/ding.rb
|
87
87
|
- lib/ding/cli.rb
|
88
|
+
- lib/ding/helpers.rb
|
88
89
|
- lib/ding/models/git.rb
|
89
90
|
- lib/ding/models/ssh.rb
|
90
91
|
- lib/ding/version.rb
|