sesh 0.3.3 → 0.3.4

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: 1c1bef49d5e6f451dc54a69ced4686389444b924
4
- data.tar.gz: 64aa0590655e071ca971b879b43491ae8bac003b
3
+ metadata.gz: 45fa82a9c47d0cbdeef3e2e4559be075213997bb
4
+ data.tar.gz: efc1cbf7895f51e8f22233159d1c9f010ce71c83
5
5
  SHA512:
6
- metadata.gz: 30fdfbf7979f17ddc1af7ac36b3c32a9e58835140c21e9e41cdc3acfe045793285aa59b0a5ba397cc37913f50f37ed7f67cf1087f7ccaa81ee5cfdac6b9ff2fc
7
- data.tar.gz: f417dec87b40588935f2363bdae6208eceee0f67cdc786f4e3771db2e595ee671f555529a7a25f4c7838e2b84f926c640cffecb945fcbcd2e4f82be182cda25b
6
+ metadata.gz: e89fbf514e3327e0705f314511aafd0c5704f218e604f8f36d071ce97f581c079b922f958617e577e3dd12232fce642e6297b46b7600c027fb8e26fb2978e57d
7
+ data.tar.gz: ee54d777d081611fd467cff0bc448352b7d9a8a2286a911d86fdc563cfbbfc27c4d5f2c01abcf7666a0223412f5d8e4a6f53e4e6863af2e480b65bb02b2e1bad
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sesh (0.3.3)
4
+ sesh (0.3.4)
5
5
  awesome_print (~> 1.6)
6
6
  colorize (~> 0.7.7)
7
7
  deep_merge (~> 1.0)
data/Session.vim CHANGED
@@ -8,7 +8,7 @@ if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
8
8
  let s:wipebuf = bufnr('%')
9
9
  endif
10
10
  set shortmess=aoO
11
- badd +2 lib/sesh/version.rb
11
+ badd +3 lib/sesh/version.rb
12
12
  badd +1 ~/Sites/energy_innovation_award/index.html
13
13
  badd +1 ~/Sites/energy_innovation_award/css/custom.css
14
14
  badd +1 ~/Sites/energy_innovation_award/about.html
@@ -269,10 +269,10 @@ badd +7 ~/Sites/polygallery/lib/polygallery.rb
269
269
  badd +12 ~/Sites/polygallery/lib/polygallery/paperclip_integration.rb
270
270
  badd +172 lib/sesh/cli.rb
271
271
  badd +18 lib/sesh/inferences.rb
272
- badd +22 lib/sesh/assets/sample.yml
272
+ badd +13 lib/sesh/assets/sample.yml
273
273
  badd +74 lib/sesh/tmux_control.rb
274
274
  badd +15 lib/sesh/ssh_control.rb
275
- badd +0 lib/sesh.rb
275
+ badd +1 lib/sesh.rb
276
276
  badd +32 sesh.gemspec
277
277
  argglobal
278
278
  silent! argdel *
@@ -302,18 +302,18 @@ set nosplitbelow
302
302
  set nosplitright
303
303
  wincmd t
304
304
  set winheight=1 winwidth=1
305
- exe '1resize ' . ((&lines * 20 + 31) / 62)
306
- exe 'vert 1resize ' . ((&columns * 136 + 136) / 272)
307
- exe '2resize ' . ((&lines * 19 + 31) / 62)
308
- exe 'vert 2resize ' . ((&columns * 136 + 136) / 272)
309
- exe '3resize ' . ((&lines * 20 + 31) / 62)
310
- exe 'vert 3resize ' . ((&columns * 135 + 136) / 272)
311
- exe '4resize ' . ((&lines * 19 + 31) / 62)
312
- exe 'vert 4resize ' . ((&columns * 135 + 136) / 272)
313
- exe '5resize ' . ((&lines * 19 + 31) / 62)
314
- exe 'vert 5resize ' . ((&columns * 136 + 136) / 272)
315
- exe '6resize ' . ((&lines * 19 + 31) / 62)
316
- exe 'vert 6resize ' . ((&columns * 135 + 136) / 272)
305
+ exe '1resize ' . ((&lines * 16 + 25) / 50)
306
+ exe 'vert 1resize ' . ((&columns * 72 + 73) / 146)
307
+ exe '2resize ' . ((&lines * 15 + 25) / 50)
308
+ exe 'vert 2resize ' . ((&columns * 72 + 73) / 146)
309
+ exe '3resize ' . ((&lines * 16 + 25) / 50)
310
+ exe 'vert 3resize ' . ((&columns * 73 + 73) / 146)
311
+ exe '4resize ' . ((&lines * 15 + 25) / 50)
312
+ exe 'vert 4resize ' . ((&columns * 73 + 73) / 146)
313
+ exe '5resize ' . ((&lines * 15 + 25) / 50)
314
+ exe 'vert 5resize ' . ((&columns * 73 + 73) / 146)
315
+ exe '6resize ' . ((&lines * 15 + 25) / 50)
316
+ exe 'vert 6resize ' . ((&columns * 72 + 73) / 146)
317
317
  argglobal
318
318
  setlocal fdm=manual
319
319
  setlocal fde=0
@@ -324,12 +324,12 @@ setlocal fml=1
324
324
  setlocal fdn=20
325
325
  setlocal fen
326
326
  silent! normal! zE
327
- let s:l = 1 - ((0 * winheight(0) + 10) / 20)
327
+ let s:l = 3 - ((1 * winheight(0) + 8) / 16)
328
328
  if s:l < 1 | let s:l = 1 | endif
329
329
  exe s:l
330
330
  normal! zt
331
- 1
332
- normal! 0
331
+ 3
332
+ normal! 03|
333
333
  wincmd w
334
334
  argglobal
335
335
  edit lib/sesh/tmux_control.rb
@@ -342,12 +342,12 @@ setlocal fml=1
342
342
  setlocal fdn=20
343
343
  setlocal fen
344
344
  silent! normal! zE
345
- let s:l = 74 - ((6 * winheight(0) + 9) / 19)
345
+ let s:l = 113 - ((11 * winheight(0) + 7) / 15)
346
346
  if s:l < 1 | let s:l = 1 | endif
347
347
  exe s:l
348
348
  normal! zt
349
- 74
350
- normal! 033|
349
+ 113
350
+ normal! 018|
351
351
  wincmd w
352
352
  argglobal
353
353
  edit lib/sesh/ssh_control.rb
@@ -360,12 +360,12 @@ setlocal fml=1
360
360
  setlocal fdn=20
361
361
  setlocal fen
362
362
  silent! normal! zE
363
- let s:l = 37 - ((15 * winheight(0) + 10) / 20)
363
+ let s:l = 38 - ((10 * winheight(0) + 8) / 16)
364
364
  if s:l < 1 | let s:l = 1 | endif
365
365
  exe s:l
366
366
  normal! zt
367
- 37
368
- normal! 09|
367
+ 38
368
+ normal! 036|
369
369
  wincmd w
370
370
  argglobal
371
371
  edit lib/sesh/inferences.rb
@@ -378,12 +378,12 @@ setlocal fml=1
378
378
  setlocal fdn=20
379
379
  setlocal fen
380
380
  silent! normal! zE
381
- let s:l = 13 - ((0 * winheight(0) + 9) / 19)
381
+ let s:l = 22 - ((9 * winheight(0) + 7) / 15)
382
382
  if s:l < 1 | let s:l = 1 | endif
383
383
  exe s:l
384
384
  normal! zt
385
- 13
386
- normal! 033|
385
+ 22
386
+ normal! 068|
387
387
  wincmd w
388
388
  argglobal
389
389
  edit lib/sesh.rb
@@ -396,12 +396,12 @@ setlocal fml=1
396
396
  setlocal fdn=20
397
397
  setlocal fen
398
398
  silent! normal! zE
399
- let s:l = 42 - ((7 * winheight(0) + 9) / 19)
399
+ let s:l = 41 - ((11 * winheight(0) + 7) / 15)
400
400
  if s:l < 1 | let s:l = 1 | endif
401
401
  exe s:l
402
402
  normal! zt
403
- 42
404
- normal! 032|
403
+ 41
404
+ normal! 023|
405
405
  wincmd w
406
406
  argglobal
407
407
  edit lib/sesh/cli.rb
@@ -414,25 +414,26 @@ setlocal fml=1
414
414
  setlocal fdn=20
415
415
  setlocal fen
416
416
  silent! normal! zE
417
- let s:l = 44 - ((18 * winheight(0) + 9) / 19)
417
+ let s:l = 210 - ((1 * winheight(0) + 7) / 15)
418
418
  if s:l < 1 | let s:l = 1 | endif
419
419
  exe s:l
420
420
  normal! zt
421
- 44
422
- normal! 025|
421
+ 210
422
+ normal! 032|
423
423
  wincmd w
424
- exe '1resize ' . ((&lines * 20 + 31) / 62)
425
- exe 'vert 1resize ' . ((&columns * 136 + 136) / 272)
426
- exe '2resize ' . ((&lines * 19 + 31) / 62)
427
- exe 'vert 2resize ' . ((&columns * 136 + 136) / 272)
428
- exe '3resize ' . ((&lines * 20 + 31) / 62)
429
- exe 'vert 3resize ' . ((&columns * 135 + 136) / 272)
430
- exe '4resize ' . ((&lines * 19 + 31) / 62)
431
- exe 'vert 4resize ' . ((&columns * 135 + 136) / 272)
432
- exe '5resize ' . ((&lines * 19 + 31) / 62)
433
- exe 'vert 5resize ' . ((&columns * 136 + 136) / 272)
434
- exe '6resize ' . ((&lines * 19 + 31) / 62)
435
- exe 'vert 6resize ' . ((&columns * 135 + 136) / 272)
424
+ 2wincmd w
425
+ exe '1resize ' . ((&lines * 16 + 25) / 50)
426
+ exe 'vert 1resize ' . ((&columns * 72 + 73) / 146)
427
+ exe '2resize ' . ((&lines * 15 + 25) / 50)
428
+ exe 'vert 2resize ' . ((&columns * 72 + 73) / 146)
429
+ exe '3resize ' . ((&lines * 16 + 25) / 50)
430
+ exe 'vert 3resize ' . ((&columns * 73 + 73) / 146)
431
+ exe '4resize ' . ((&lines * 15 + 25) / 50)
432
+ exe 'vert 4resize ' . ((&columns * 73 + 73) / 146)
433
+ exe '5resize ' . ((&lines * 15 + 25) / 50)
434
+ exe 'vert 5resize ' . ((&columns * 73 + 73) / 146)
435
+ exe '6resize ' . ((&lines * 15 + 25) / 50)
436
+ exe 'vert 6resize ' . ((&columns * 72 + 73) / 146)
436
437
  tabnext 1
437
438
  if exists('s:wipebuf')
438
439
  silent exe 'bwipe ' . s:wipebuf
data/lib/sesh/cli.rb CHANGED
@@ -68,11 +68,11 @@ module Sesh
68
68
  parsed_options[:ssh][:remote_addr] = v }
69
69
 
70
70
  # Tmux options
71
- opts.on('-S', '--tmux-socket-file=path', 'Path to Tmux Socket File') {|v|
72
- # fatal("Socket file #{v} does not exist.") unless File.exist?(v)
73
- parsed_options[:tmux][:socket_file] = v }
74
- opts.on('--tmux-pids-file=path', 'Path to Tmux Pids File') {|v|
75
- parsed_options[:tmux][:pids_file] = v }
71
+ # opts.on('-S', '--tmux-socket-file=path', 'Path to Tmux Socket File') {|v|
72
+ # # fatal("Socket file #{v} does not exist.") unless File.exist?(v)
73
+ # parsed_options[:tmux][:socket_file] = v }
74
+ # opts.on('--tmux-pids-file=path', 'Path to Tmux Pids File') {|v|
75
+ # parsed_options[:tmux][:pids_file] = v }
76
76
 
77
77
  # Shell options for remote commands
78
78
  opts.on('-C', '--shell-command=cmd', 'Shell Command to Execute') {|v|
@@ -139,8 +139,8 @@ module Sesh
139
139
  @options[:template] ||= File.join(
140
140
  File.dirname(File.expand_path(__FILE__)), 'assets', 'sample.yml' )
141
141
  end
142
- @options[:tmux][:socket_file] ||= "/tmp/#{@options[:project]}.sock"
143
- @options[:tmux][:pids_file] ||= "/tmp/#{@options[:project]}.pids.txt"
142
+ # @options[:tmux][:socket_file] ||= "/tmp/#{@options[:project]}.sock"
143
+ # @options[:tmux][:pids_file] ||= "/tmp/#{@options[:project]}.pids.txt"
144
144
  if %w(enslave connect).include? @command
145
145
  @options[:ssh][:local_addr] ||= Sesh::Inferences.infer_local_ssh_addr
146
146
  if @options[:ssh][:remote_addr].nil? && ARGV.any?
@@ -205,8 +205,7 @@ module Sesh
205
205
  Logger.success "#{pcount} project#{pcount>1 ? 's':''} currently running:"
206
206
  running_projects.each do |rp|
207
207
  puts; Logger.info "Project: #{rp}", 1
208
- # TODO: handle the socket file better
209
- tc = TmuxControl.new rp, socket_file: "/tmp/#{rp}.sock"
208
+ tc = TmuxControl.new rp
210
209
  tc_clients = tc.connected_client_devices
211
210
  if tc_clients.any?
212
211
  Logger.success "Connected Client Devices:", 2
@@ -1,20 +1,21 @@
1
1
  require 'sesh'
2
+ # require 'tmuxinator'
3
+ # require 'yaml'
2
4
 
3
5
  module Sesh
4
6
  class TmuxControl
5
7
  def initialize(project, options={})
6
8
  @project = project || Inferences::infer_project_from_current_directory
7
- @options = {}.merge(DEFAULT_OPTIONS[:tmux]).merge(options)
8
- @socket_file = @options[:socket_file]
9
+ @options = {}.merge(DEFAULT_OPTIONS[:tmux]).merge options
10
+ @socket_file = @options[:socket_file] || "/tmp/#{@project}.sock"
9
11
  end
10
12
 
11
13
  def self.get_running_projects
12
- # TODO: handle custom socket paths
13
14
  output = Sesh.format_and_run_command <<-BASH
14
15
  ps aux | grep tmux | grep "sesh begin" | grep -v "[g]rep" \
15
16
  | sed -e "s/.*\\/tmp\\/\\(.*\\)\\.sock.*/\\1/"
16
17
  BASH
17
- output.lines
18
+ output.lines.map(&:strip)
18
19
  end
19
20
  def already_running?; self.class.get_running_projects.include? @project end
20
21
  # `ps aux | grep "#{project_name_matcher}"`.strip.length > 0 end
@@ -60,10 +61,6 @@ module Sesh
60
61
  output += output.map{|cpid| obtain_child_pids_from_pid(cpid) - [pid] }.flatten
61
62
  output.reverse
62
63
  end
63
- def store_pids_from_session!
64
- File.open(@options[:pids_file], 'w') {|f|
65
- obtain_pids_from_session.each{|pid| f.puts pid } }
66
- end
67
64
 
68
65
  def kill_running_processes
69
66
  pane_count = `tmux list-panes -s -F "\#{pane_pid} \#{pane_current_command}" -t "#{@project}" 2>/dev/null`.strip.lines.count
@@ -89,7 +86,6 @@ module Sesh
89
86
  if issue_start_command! && Logger.show_progress_until(-> { already_running? })
90
87
  sleep 1
91
88
  if already_running?
92
- store_pids_from_session!
93
89
  Logger.success 'Sesh started successfully.'
94
90
  puts
95
91
  else Logger.fatal 'Sesh failed to start!' end
@@ -108,7 +104,7 @@ module Sesh
108
104
  def restart_project!; stop_project!; sleep 0.5; start_project! end
109
105
 
110
106
  def connected_client_devices
111
- `tmux -S "#{@socket_file}" list-clients | cut -d : -f 1 | cut -d / -f 3`.strip.lines.map(&:strip)
107
+ `tmux -S "#{@socket_file}" list-clients 2>/dev/null | cut -d : -f 1 | cut -d / -f 3`.strip.lines.map(&:strip)
112
108
  end
113
109
  def get_ip_from_device(devname)
114
110
  ip_line = `who -a 2> /dev/null | grep " #{devname} "`.strip
@@ -117,9 +113,9 @@ module Sesh
117
113
  end
118
114
  def get_device_from_ip(ip)
119
115
  return if ( connected_devs = connected_client_devices ).length == 0
120
- who_lines =
121
- `who -a 2> /dev/null | grep #{ip == '127.0.0.1' ? ' -v "\\([.*]\\)\\$' :
122
- '"' + Regexp.escape("(#{ip})") }"`.strip.lines
116
+ return connected_devs.find{|d| get_ip_from_device(ip) == ip } if ip == '127.0.0.1'
117
+ who_lines = `who -a 2> /dev/null | grep "#{ Regexp.escape("(#{ip})") }"`.strip.lines
118
+ puts connected_devs.inspect
123
119
  return if who_lines.length == 0
124
120
  connected_devs.find{|d| who_lines.find{|l| l =~ / #{d} / } }
125
121
  end
@@ -145,7 +141,7 @@ module Sesh
145
141
  resolved_ip = ping_output[1].split(' from ')[1].split(': ')[0]
146
142
  disconnect_client_by_ip! resolved_ip
147
143
  else
148
- puts ping_output
144
+ puts "Ping output: #{ping_output}"
149
145
  end
150
146
  else
151
147
  ssh_identifier =
data/lib/sesh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sesh
2
- VERSION = '0.3.3'
2
+ VERSION = '0.3.4'
3
3
  end
data/lib/sesh.rb CHANGED
@@ -42,10 +42,7 @@ module Sesh
42
42
  connect_in_new_window: false,
43
43
  connect_fullscreen: false
44
44
  },
45
- tmux: {
46
- socket_file: nil,
47
- pids_file: nil
48
- }
45
+ tmux: { socket_file: nil }
49
46
  }
50
47
  POSSIBLE_CONFIG_LOCATIONS = %w( sesh_config.yml config/sesh.yml )
51
48
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sesh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - MacKinley Smith