peas-cli 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e147ed7b913c7320594016bb5de72c4020c44381
4
- data.tar.gz: f50bad03497e2f8121cb2edcb6d672eea45282ae
3
+ metadata.gz: faee8809a414a35708ca312da7d0058383c2f16f
4
+ data.tar.gz: 96f7c1fcdbf0efcc9551c6404ec4031f9d4cba03
5
5
  SHA512:
6
- metadata.gz: 9d939bc70c47442ffabb2fdc4c1b4f3d3cd0f6534efa4c61075b9f76f36e1225f29bee4ab01f7a8e45693272f8ee4532f1d9ae3be6dd95d1c0607a17862f4491
7
- data.tar.gz: 11338f348ddfd662d5824fc6ebdb6cb41f1a1688c97fad36aefc85504db8b122e40157c799db46dfa062a7ea4079cc7820bcc1e943a7b89a0f3a111c3fa79f11
6
+ metadata.gz: b8c95f478440542ac91133997d017a908b6b585a674981e5fe423ab839b506b087e583fbf51b710a2497e0af4c470da6e28e0e6042a87cc42fb0d2a10fffff14
7
+ data.tar.gz: 7ec91fd22ad6b72f52baf27daeca94949f3996297aeb9c94c617b89e651439a6e681774ed1383f5d3170e0189b1af6a3e073dd140ddb37a99c8640a15dc63b52
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.4.0
data/lib/peas/api.rb CHANGED
@@ -83,4 +83,31 @@ class API
83
83
  rescue Interrupt, Errno::ECONNRESET
84
84
  end
85
85
  end
86
+
87
+ # Create 2 threads to allow raw TTY to be sent at the same time as outputting
88
+ # data from the socket.
89
+ def self.duplex_socket socket
90
+ threads = []
91
+
92
+ # Copy STDIN to socket
93
+ threads << Thread.start do
94
+ STDIN.raw do |stdin|
95
+ IO.copy_stream stdin, socket
96
+ end
97
+ socket.close_write
98
+ end
99
+
100
+ # Write response to STDOUT
101
+ threads << Thread.start do
102
+ begin
103
+ while (chunk = socket.readpartial(512))
104
+ print chunk
105
+ end
106
+ rescue EOFError
107
+ end
108
+ threads.first.kill
109
+ end
110
+
111
+ threads.each(&:join)
112
+ end
86
113
  end
@@ -33,4 +33,19 @@ command :admin do |admin|
33
33
  end
34
34
  end
35
35
  end
36
+
37
+ admin.desc 'Run commands on the Peas Controller'
38
+ admin.long_desc <<-EOF
39
+ For example: peas admin run rake console
40
+ EOF
41
+ admin.command :run do |c|
42
+ c.action do |_global_options, _options, args|
43
+ exit_now!("Please provide a command to run", 1) if args.length == 0
44
+ socket = API.switchboard_connection
45
+ socket.puts "admin_tty"
46
+ tty_command = args.join ' '
47
+ socket.puts tty_command
48
+ API.duplex_socket socket
49
+ end
50
+ end
36
51
  end
@@ -71,28 +71,6 @@ command :run do |c|
71
71
  socket.puts "tty.#{Git.name_from_remote}"
72
72
  tty_command = args.join ' '
73
73
  socket.puts tty_command
74
-
75
- threads = []
76
-
77
- # Copy STDIN to socket
78
- threads << Thread.start do
79
- STDIN.raw do |stdin|
80
- IO.copy_stream stdin, socket
81
- end
82
- socket.close_write
83
- end
84
-
85
- # Write response to STDOUT
86
- threads << Thread.start do
87
- begin
88
- while (chunk = socket.readpartial(512))
89
- print chunk
90
- end
91
- rescue EOFError
92
- end
93
- threads.first.kill
94
- end
95
-
96
- threads.each(&:join)
74
+ API.duplex_socket socket
97
75
  end
98
76
  end
data/peas-cli.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: peas-cli 0.3.2 ruby lib
5
+ # stub: peas-cli 0.4.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "peas-cli"
9
- s.version = "0.3.2"
9
+ s.version = "0.4.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Tom Buckley-Houston"]
14
- s.date = "2014-11-05"
14
+ s.date = "2014-11-19"
15
15
  s.description = "Peas is an open source Heroku-style PaaS written in Ruby and using Docker"
16
16
  s.email = "tom@tombh.co.uk"
17
17
  s.executables = ["peas"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peas-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Buckley-Houston
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-05 00:00:00.000000000 Z
11
+ date: 2014-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli