peas-cli 0.3.2 → 0.4.0

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 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