rubysteps 0.0.1 → 0.0.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/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