rubysteps 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/rubysteps +75 -12
- data/lib/rubysteps/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef0c442b1b016da89b99cc194a1bee2783c47fa3
|
4
|
+
data.tar.gz: 4cd7da4daee30c65165bec4aee14c735a70577dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af1987ff386ff27e6154119759ab8fae99a20549267de09c160503198b7757615d5ce295c053b86e64740b3571652fdede2fb29c47313c171b5846649d5529fd
|
7
|
+
data.tar.gz: 2b8f74fd7a13f330742765f9a202e1b582642cb8fa7e755b2c4acddd7b8c7983dd5282f308ceda71c1262a51903e1f0530b7a03b8e740806e5920d22312bc229
|
data/bin/rubysteps
CHANGED
@@ -2,21 +2,24 @@
|
|
2
2
|
require 'thor'
|
3
3
|
require 'active_rest_client'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
RUBYSTEPS_FILENAME = File.expand_path('~/.rubysteps-login')
|
6
|
+
RUBYSTEPS_FILENAME << "-dev" if ENV['dev']
|
7
|
+
if File.exist?(RUBYSTEPS_FILENAME)
|
8
|
+
USERNAME, TOKEN = File.read(RUBYSTEPS_FILENAME).strip.split(":")
|
9
|
+
else
|
10
|
+
USERNAME, TOKEN = 'ignore', 'for_real'
|
11
|
+
$stderr.puts "Missing ~/.rubysteps-login"
|
12
|
+
$stderr.puts "`rubysteps register` is the only command which will work"
|
13
|
+
$stderr.puts "Please contact pat for your credentials"
|
9
14
|
end
|
10
15
|
|
11
|
-
|
16
|
+
ActiveRestClient::Base.base_url = if ENV['dev']
|
17
|
+
"http://#{USERNAME}:#{TOKEN}@localhost:3000/"
|
18
|
+
else
|
19
|
+
"https://#{USERNAME}:#{TOKEN}@mob-lobby.herokuapp.com/"
|
20
|
+
end
|
12
21
|
|
13
22
|
class MobResource < ActiveRestClient::Base
|
14
|
-
if ENV['dev']
|
15
|
-
base_url "http://#{USERNAME}:#{TOKEN}@localhost:3000/"
|
16
|
-
else
|
17
|
-
base_url "https://#{USERNAME}:#{TOKEN}@mob-lobby.herokuapp.com/"
|
18
|
-
end
|
19
|
-
|
20
23
|
get :all, "/mobs"
|
21
24
|
get :find, "/mobs/:id"
|
22
25
|
put :join, "/mobs/:id/join"
|
@@ -38,9 +41,25 @@ class MobResource < ActiveRestClient::Base
|
|
38
41
|
end
|
39
42
|
end
|
40
43
|
|
44
|
+
class InvitationResource < ActiveRestClient::Base
|
45
|
+
put :accept, "/invitations/:id/accept"
|
46
|
+
|
47
|
+
def credentials
|
48
|
+
[username, token].join ':'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class PublicKeyResource < ActiveRestClient::Base
|
53
|
+
post :upload, "/public_keys"
|
54
|
+
end
|
55
|
+
|
41
56
|
class RubyStepsClient
|
42
57
|
def self.mobs
|
43
|
-
|
58
|
+
begin
|
59
|
+
MobResource.all[:mobs]
|
60
|
+
rescue ActiveRestClient::HTTPUnauthorisedClientException => e
|
61
|
+
$stderr.puts "Unauthorized. #{e.result}"
|
62
|
+
end
|
44
63
|
end
|
45
64
|
|
46
65
|
def self.join_mob(slug)
|
@@ -54,12 +73,46 @@ class RubyStepsClient
|
|
54
73
|
$stderr.puts "Unauthorized. #{e.result}"
|
55
74
|
end
|
56
75
|
end
|
76
|
+
|
77
|
+
def self.register(token)
|
78
|
+
begin
|
79
|
+
invitation = InvitationResource.accept token
|
80
|
+
File.open(RUBYSTEPS_FILENAME, 'w') {|f| f.write invitation.credentials }
|
81
|
+
puts "You are registered as #{invitation.username}. You may now run rubysteps commands"
|
82
|
+
puts "Please upload your SSH key with `rubysteps upload_public_key PATH_TO_KEY`"
|
83
|
+
rescue ActiveRestClient::HTTPNotFoundClientException
|
84
|
+
$stderr.puts "Unable to find an invitation with token #{token}"
|
85
|
+
rescue ActiveRestClient::HTTPUnauthorisedClientException => e
|
86
|
+
$stderr.puts "Unauthorized. #{e.result}"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.upload_public_key(path)
|
91
|
+
full_path = File.expand_path path
|
92
|
+
|
93
|
+
if File.file?(full_path)
|
94
|
+
puts "Uploading public key: #{full_path}"
|
95
|
+
|
96
|
+
key_text = File.read(full_path).strip
|
97
|
+
|
98
|
+
begin
|
99
|
+
key = PublicKeyResource.new key: key_text
|
100
|
+
key.upload
|
101
|
+
puts "Public key successfully uploaded"
|
102
|
+
rescue ActiveRestClient::HTTPUnauthorisedClientException => e
|
103
|
+
$stderr.puts "Unauthorized. #{e.result}"
|
104
|
+
end
|
105
|
+
else
|
106
|
+
$stderr.puts "Unable to find public key: #{full_path}"
|
107
|
+
end
|
108
|
+
end
|
57
109
|
end
|
58
110
|
|
59
111
|
class RubySteps < Thor
|
60
112
|
desc "list", "List mobs waiting to start"
|
61
113
|
def list
|
62
114
|
mobs = RubyStepsClient.mobs
|
115
|
+
return if mobs.nil?
|
63
116
|
if mobs.any?
|
64
117
|
mobs.each do |m|
|
65
118
|
puts m
|
@@ -92,6 +145,16 @@ class RubySteps < Thor
|
|
92
145
|
def chicken
|
93
146
|
puts "cluck cluck!"
|
94
147
|
end
|
148
|
+
|
149
|
+
desc "register TOKEN", "Register an invitation using TOKEN and download credentials"
|
150
|
+
def register(token)
|
151
|
+
RubyStepsClient.register token
|
152
|
+
end
|
153
|
+
|
154
|
+
desc "upload_public_key PATH", "Upload the public key located at PATH (e.g. ~/.ssh/id_rsa.pub)"
|
155
|
+
def upload_public_key(path)
|
156
|
+
RubyStepsClient.upload_public_key path
|
157
|
+
end
|
95
158
|
end
|
96
159
|
|
97
160
|
RubySteps.start
|
data/lib/rubysteps/version.rb
CHANGED