kalipso 0.1.6 → 0.1.7
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/VERSION +1 -1
- data/bin/kalipso +1 -1
- data/kalipso.gemspec +2 -1
- data/lib/kalipso.rb +1 -34
- data/lib/kalipso/cli.rb +48 -6
- data/lib/kalipso/cli_init.rb +27 -0
- metadata +4 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.7
|
data/bin/kalipso
CHANGED
data/kalipso.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{kalipso}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Paul Campbell"]
|
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
|
|
30
30
|
"kalipso.gemspec",
|
31
31
|
"lib/kalipso.rb",
|
32
32
|
"lib/kalipso/cli.rb",
|
33
|
+
"lib/kalipso/cli_init.rb",
|
33
34
|
"lib/kalipso/public_key.rb",
|
34
35
|
"lib/kalipso/site.rb"
|
35
36
|
]
|
data/lib/kalipso.rb
CHANGED
@@ -13,37 +13,4 @@ require 'pathname'
|
|
13
13
|
|
14
14
|
# models
|
15
15
|
require 'kalipso/site'
|
16
|
-
require 'kalipso/public_key'
|
17
|
-
|
18
|
-
# app
|
19
|
-
Dir[File.expand_path('app/*/*.rb', __FILE__)].each do |file|
|
20
|
-
require file
|
21
|
-
end
|
22
|
-
|
23
|
-
Jaysus::Local.store_dir = File.expand_path("~/.kalipso")
|
24
|
-
Jaysus::Local.store_dir.mkpath unless Jaysus::Local.store_dir.exist?
|
25
|
-
|
26
|
-
token_path = Jaysus::Local.store_dir.join('token')
|
27
|
-
|
28
|
-
if token_path.exist?
|
29
|
-
token = token_path.read
|
30
|
-
else
|
31
|
-
email = ask("Enter your email: ") { |q| q.echo = true }
|
32
|
-
password = ask("Enter your password: ") { |q| q.echo = "*" }
|
33
|
-
token = ActiveSupport::JSON.decode(RestClient.get("http://#{CGI.escape(email)}:#{CGI.escape(password)}@oncalypso.com/api/v1/users.json"))['token']
|
34
|
-
token_path.open('w') do |file|
|
35
|
-
file.write token
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
Jaysus::Remote.base_url = "http://#{token}:x@oncalypso.com/api/v1"
|
40
|
-
|
41
|
-
if !Jaysus::Local.store_dir.join('keys').exist?
|
42
|
-
key_dir = Jaysus::Local.store_dir.join('keys')
|
43
|
-
key_dir.mkpath unless key_dir.exist?
|
44
|
-
key_path = key_dir.join('id_rsa')
|
45
|
-
public_key_path = key_dir.join('id_rsa.pub')
|
46
|
-
puts "generating and uploading public key"
|
47
|
-
`ssh-keygen -N '' -t rsa -q -f #{key_path.to_s.strip}`
|
48
|
-
Kalipso::PublicKey::Remote.create(:key => public_key_path.read)
|
49
|
-
end
|
16
|
+
require 'kalipso/public_key'
|
data/lib/kalipso/cli.rb
CHANGED
@@ -1,16 +1,37 @@
|
|
1
1
|
module Kalipso
|
2
2
|
class CLI < Thor
|
3
3
|
|
4
|
+
desc "path", "print linked path for a site"
|
5
|
+
def path(name)
|
6
|
+
site = Site::Local.find_by_name(name)
|
7
|
+
if site.present?
|
8
|
+
if site.path.present?
|
9
|
+
puts site.path
|
10
|
+
else
|
11
|
+
puts "Path not present. You need to link this site to a path."
|
12
|
+
end
|
13
|
+
else
|
14
|
+
puts "Could not find site #{name}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
4
18
|
desc "create", "add a site"
|
5
|
-
def create(name = nil)
|
6
|
-
path = Dir.pwd
|
19
|
+
def create(name = nil, path = nil)
|
7
20
|
if name.present?
|
8
|
-
puts "Creating #{name}
|
21
|
+
puts "Creating #{name}"
|
9
22
|
else
|
10
|
-
puts "Creating a new site
|
23
|
+
puts "Creating a new site"
|
11
24
|
end
|
12
25
|
begin
|
13
|
-
Site::Remote.create(:name => name)
|
26
|
+
remote_site = Site::Remote.create(:name => name)
|
27
|
+
path = path || File.expand_path("~/Sites/oncalypso/#{remote_site.name}")
|
28
|
+
Site::Local.create({
|
29
|
+
:name => remote_site.name,
|
30
|
+
:id => remote_site.id,
|
31
|
+
:path => path
|
32
|
+
})
|
33
|
+
Pathname.new(path).mkpath unless Pathname.new(path).exist?
|
34
|
+
puts "Site #{remote_site.name} site created and linked to #{path}"
|
14
35
|
|
15
36
|
rescue RestClient::UnprocessableEntity
|
16
37
|
puts "There was an error uploading your site"
|
@@ -32,6 +53,20 @@ module Kalipso
|
|
32
53
|
end
|
33
54
|
end
|
34
55
|
|
56
|
+
desc "open", "open a site in browser"
|
57
|
+
def open(site = nil)
|
58
|
+
if site.present?
|
59
|
+
site = Site::Local.find_by_name(site)
|
60
|
+
else
|
61
|
+
site = Site::Local.find_by_path(Dir.pwd)
|
62
|
+
end
|
63
|
+
if site.present?
|
64
|
+
`open http://#{site.name}.oncalypso.com`
|
65
|
+
else
|
66
|
+
puts "Could not find site"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
35
70
|
desc "link", "link a local path to a site"
|
36
71
|
def link(site, path = nil)
|
37
72
|
site = Site::Local.find_by_name(site)
|
@@ -76,7 +111,9 @@ module Kalipso
|
|
76
111
|
path = File.expand_path("~/Sites/oncalypso/#{name}")
|
77
112
|
pathname = Pathname.new(path)
|
78
113
|
pathname.mkpath unless pathname.exist?
|
79
|
-
local_site.
|
114
|
+
local_site.name = site.name
|
115
|
+
local_site.path = path
|
116
|
+
local_site.save
|
80
117
|
`rsync -arvH -e "ssh -i #{Jaysus::Local.store_dir.join('keys', 'id_rsa')}" sites@diddlydum.com:/home/sites/#{site.name}/ #{path.gsub(/\/+$/, '')}/`
|
81
118
|
puts "Site #{name} downloaded to #{path.gsub(/\/+$/, '')}"
|
82
119
|
else
|
@@ -108,5 +145,10 @@ module Kalipso
|
|
108
145
|
puts "site not found with path #{path}"
|
109
146
|
end
|
110
147
|
end
|
148
|
+
|
149
|
+
desc "version", "print the version of the kalipso gem"
|
150
|
+
def version
|
151
|
+
puts File.read(File.expand_path('../../../VERSION', __FILE__))
|
152
|
+
end
|
111
153
|
end
|
112
154
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Jaysus::Local.store_dir = File.expand_path("~/.kalipso")
|
2
|
+
Jaysus::Local.store_dir.mkpath unless Jaysus::Local.store_dir.exist?
|
3
|
+
|
4
|
+
token_path = Jaysus::Local.store_dir.join('token')
|
5
|
+
|
6
|
+
if token_path.exist?
|
7
|
+
token = token_path.read
|
8
|
+
else
|
9
|
+
email = ask("Enter your email: ") { |q| q.echo = true }
|
10
|
+
password = ask("Enter your password: ") { |q| q.echo = "*" }
|
11
|
+
token = ActiveSupport::JSON.decode(RestClient.get("http://#{CGI.escape(email)}:#{CGI.escape(password)}@oncalypso.com/api/v1/users.json"))['token']
|
12
|
+
token_path.open('w') do |file|
|
13
|
+
file.write token
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Jaysus::Remote.base_url = "http://#{token}:x@oncalypso.com/api/v1"
|
18
|
+
|
19
|
+
if !Jaysus::Local.store_dir.join('keys').exist?
|
20
|
+
key_dir = Jaysus::Local.store_dir.join('keys')
|
21
|
+
key_dir.mkpath unless key_dir.exist?
|
22
|
+
key_path = key_dir.join('id_rsa')
|
23
|
+
public_key_path = key_dir.join('id_rsa.pub')
|
24
|
+
puts "generating and uploading public key"
|
25
|
+
`ssh-keygen -N '' -t rsa -q -f #{key_path.to_s.strip}`
|
26
|
+
Kalipso::PublicKey::Remote.create(:key => public_key_path.read)
|
27
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kalipso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 7
|
10
|
+
version: 0.1.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Paul Campbell
|
@@ -191,6 +191,7 @@ files:
|
|
191
191
|
- kalipso.gemspec
|
192
192
|
- lib/kalipso.rb
|
193
193
|
- lib/kalipso/cli.rb
|
194
|
+
- lib/kalipso/cli_init.rb
|
194
195
|
- lib/kalipso/public_key.rb
|
195
196
|
- lib/kalipso/site.rb
|
196
197
|
- spec/kalipso_spec.rb
|